From 2f97ec99c170c1550a18aaeb04a8698d4e5da5fa Mon Sep 17 00:00:00 2001 From: Michael Tremer Date: Mon, 25 Sep 2023 15:33:42 +0000 Subject: [PATCH] transaction: Fix writing the separator line Signed-off-by: Michael Tremer --- src/libpakfire/transaction.c | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/libpakfire/transaction.c b/src/libpakfire/transaction.c index 841ed0b87..43904e6d4 100644 --- a/src/libpakfire/transaction.c +++ b/src/libpakfire/transaction.c @@ -963,13 +963,21 @@ static int pakfire_transaction_add_package_change(char** s, size_t width, } static int pakfire_transaction_add_separator(char** s, size_t width) { - char* separator = alloca(width + 1); + int r; + + // Write line of = + for (unsigned int i = 0; i < width; i++) { + r = asprintf(s, "%s=", *s); + if (r < 0) + return r; + } - for (unsigned int i = 0; i < width; i++) - separator[i] = '='; - separator[width] = '\0'; + // Append newline + r = asprintf(s, "%s\n", *s); + if (r < 0) + return r; - return pakfire_transaction_append_line(s, "%s%s\n", *s, separator); + return 0; } static int pakfire_transaction_add_usage_line(char** s, size_t width, -- 2.47.3