Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
// Compile all regular expressions
int r = pakfire_parser_compile_regexes(parser);
- if (r) {
- free(buffer);
- return NULL;
- }
+ if (r)
+ goto ERROR;
// Expand all variables
r = pakfire_parser_expand_variables(parser, namespace, &buffer);
- if (r) {
- if (buffer)
- free(buffer);
-
- return NULL;
- }
+ if (r)
+ goto ERROR;
// Expand all commands
if (parser->flags & PAKFIRE_PARSER_FLAGS_EXPAND_COMMANDS) {
r = pakfire_parser_expand_commands(parser, &buffer);
- if (r) {
- if (buffer)
- free(buffer);
-
- return NULL;
- }
+ if (r)
+ goto ERROR;
}
return buffer;
+
+ERROR:
+ if (buffer)
+ free(buffer);
+
+ return NULL;
}
PAKFIRE_EXPORT char* pakfire_parser_get(PakfireParser parser, const char* namespace, const char* name) {