From a8a710e4bf4fccb29fd0330969746801d37adda4 Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Sat, 11 Jan 2025 14:24:42 +0000 Subject: [PATCH] parsers: Statically allocate the namespace Signed-off-by: Michael Tremer --- src/pakfire/parser.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/pakfire/parser.c b/src/pakfire/parser.c index 737ad3743..31dd8cebe 100644 --- a/src/pakfire/parser.c +++ b/src/pakfire/parser.c @@ -58,7 +58,9 @@ struct pakfire_parser { struct pakfire_parser* parent; int flags; - char* namespace; + + // Namespace + char namespace[NAME_MAX]; struct pakfire_parser_declaration** declarations; size_t num_declarations; @@ -83,9 +85,6 @@ static void pakfire_parser_free_declarations(struct pakfire_parser* parser) { static void pakfire_parser_free(struct pakfire_parser* parser) { pakfire_parser_free_declarations(parser); - if (parser->namespace) - free(parser->namespace); - if (parser->parent) pakfire_parser_unref(parser->parent); if (parser->pakfire) @@ -996,13 +995,12 @@ const char* pakfire_parser_get_namespace(struct pakfire_parser* parser) { } int pakfire_parser_set_namespace(struct pakfire_parser* parser, const char* namespace) { - if (parser->namespace) - free(parser->namespace); + int r; - if (namespace) - parser->namespace = strdup(namespace); - else - parser->namespace = NULL; + // Store the namespace + r = pakfire_string_set(parser->namespace, namespace); + if (r < 0) + return r; DEBUG(parser->ctx, "%p: Set namespace to: %s\n", parser, parser->namespace); -- 2.47.3