debuginfod: Initialize response_data early in debuginfod-client query

Message ID 20221115165540.26020-1-mark@klomp.org
State Committed
Headers
Series debuginfod: Initialize response_data early in debuginfod-client query |

Commit Message

Mark Wielaard Nov. 15, 2022, 4:55 p.m. UTC
  On error going to out2, the response_data is freed. So initialize the
response_data to NULL immediately after allocation or when going back
to query_in_parallel.

Signed-off-by: Mark Wielaard <mark@klomp.org>
---
 debuginfod/ChangeLog           | 5 +++++
 debuginfod/debuginfod-client.c | 4 ++--
 2 files changed, 7 insertions(+), 2 deletions(-)
  

Comments

Mark Wielaard Nov. 21, 2022, 5:22 p.m. UTC | #1
Hi,

On Tue, 2022-11-15 at 17:55 +0100, Mark Wielaard wrote:
> On error going to out2, the response_data is freed. So initialize the
> response_data to NULL immediately after allocation or when going back
> to query_in_parallel.

Frank on irc said this looked fine.

Pushed,

Mark
  

Patch

diff --git a/debuginfod/ChangeLog b/debuginfod/ChangeLog
index 5678002a..2a9ba518 100644
--- a/debuginfod/ChangeLog
+++ b/debuginfod/ChangeLog
@@ -1,3 +1,8 @@ 
+2022-11-15  Mark Wielaard  <mark@klomp.org>
+
+	* debuginfod-client.c (debuginfod_query_server): Initialize
+	response_data early.
+
 2022-11-04  Aaron Merey  <amerey@redhat.com>
 
 	* debuginfod-client.c (debuginfod_find_section): Ensure rc
diff --git a/debuginfod/debuginfod-client.c b/debuginfod/debuginfod-client.c
index 99da05ef..c92ef274 100644
--- a/debuginfod/debuginfod-client.c
+++ b/debuginfod/debuginfod-client.c
@@ -1250,6 +1250,8 @@  debuginfod_query_server (debuginfod_client *c,
       data[i].handle = NULL;
       data[i].fd = -1;
       data[i].errbuf[0] = '\0';
+      data[i].response_data = NULL;
+      data[i].response_data_size = 0;
     }
 
   char *escaped_string = NULL;
@@ -1346,8 +1348,6 @@  debuginfod_query_server (debuginfod_client *c,
 	  curl_easy_setopt_ck (data[i].handle, CURLOPT_LOW_SPEED_LIMIT,
 			       100 * 1024L);
 	}
-      data[i].response_data = NULL;
-      data[i].response_data_size = 0;
       curl_easy_setopt_ck(data[i].handle, CURLOPT_FILETIME, (long) 1);
       curl_easy_setopt_ck(data[i].handle, CURLOPT_FOLLOWLOCATION, (long) 1);
       curl_easy_setopt_ck(data[i].handle, CURLOPT_FAILONERROR, (long) 1);