Blame SOURCES/0004-Use-g_strdup_vprintf-instead-of-manually-calculating.patch

d023ce
From dc640e127f4c678c9dfbda776994972600d53e56 Mon Sep 17 00:00:00 2001
d023ce
From: =?UTF-8?q?Luk=C3=A1=C5=A1=20Hr=C3=A1zk=C3=BD?= <lhrazky@redhat.com>
d023ce
Date: Tue, 16 Aug 2022 13:44:22 +0200
d023ce
Subject: [PATCH] Use g_strdup_vprintf() instead of manually calculating
d023ce
 allocation space
d023ce
d023ce
Fixes an error introduced in d2508e206514bdbf841ee72f4971336766c16fe1 by
d023ce
removing trailing NULLs, on which the size calculation code was relying.
d023ce
d023ce
Instead of this incosistent argument iteration, use g_strdup_vprintf(),
d023ce
which allocates the new string correctly.
d023ce
---
d023ce
 librepo/metadata_downloader.c | 19 ++-----------------
d023ce
 1 file changed, 2 insertions(+), 17 deletions(-)
d023ce
d023ce
diff --git a/librepo/metadata_downloader.c b/librepo/metadata_downloader.c
d023ce
index 9e7d7e5..92a462b 100644
d023ce
--- a/librepo/metadata_downloader.c
d023ce
+++ b/librepo/metadata_downloader.c
d023ce
@@ -98,26 +98,11 @@ void
d023ce
 lr_metadatatarget_append_error(LrMetadataTarget *target, char *format, ...)
d023ce
 {
d023ce
     va_list valist;
d023ce
-    size_t length = strlen(format);
d023ce
-    char *error_message = NULL;
d023ce
-
d023ce
-    va_start(valist, format);
d023ce
-    while (1) {
d023ce
-        char *arg = va_arg(valist, char*);
d023ce
-        if (arg == NULL)
d023ce
-            break;
d023ce
-
d023ce
-        length += strlen(arg);
d023ce
-    }
d023ce
-    length += RESERVE;
d023ce
-    va_end(valist);
d023ce
-
d023ce
     va_start(valist, format);
d023ce
-    error_message = malloc(length * sizeof(char));
d023ce
-    vsnprintf(error_message, length, format, valist);
d023ce
+    gchar *error_message = g_strdup_vprintf(format, valist);
d023ce
     va_end(valist);
d023ce
 
d023ce
-    target->err = g_list_append(target->err, (gpointer) error_message);
d023ce
+    target->err = g_list_append(target->err, error_message);
d023ce
 }
d023ce
 
d023ce
 static gboolean
d023ce
-- 
d023ce
2.37.1
d023ce