]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
tool_operate: use the correct config pointer
authorDaniel Stenberg <daniel@haxx.se>
Mon, 4 Aug 2025 21:21:14 +0000 (23:21 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Wed, 6 Aug 2025 14:47:52 +0000 (16:47 +0200)
Triggered when doing 100+ parallel globbed upload transfers.

Reported-by: letshack9707 on hackerone
Closes #18200

src/tool_operate.c

index de5caaea99cea36a23e507e8491214478e6bc922..3d9a7db01eaffd91af54dbd5851f72e462c67bc5 100644 (file)
@@ -260,16 +260,13 @@ static struct per_transfer *del_per_transfer(struct per_transfer *per)
   return n;
 }
 
-static CURLcode pre_transfer(struct GlobalConfig *global,
-                             struct per_transfer *per)
+static CURLcode pre_transfer(struct per_transfer *per)
 {
   curl_off_t uploadfilesize = -1;
   struct_stat fileinfo;
   CURLcode result = CURLE_OK;
-#ifdef CURL_DISABLE_LIBCURL_OPTION
-  (void)global; /* otherwise used in the my_setopt macros */
-#else
-  struct OperationConfig *config = global->current;
+#ifndef CURL_DISABLE_LIBCURL_OPTION
+  struct OperationConfig *config = per->config;
 #endif
 
   if(per->uploadfile && !stdin_upload(per->uploadfile)) {
@@ -1446,7 +1443,7 @@ static CURLcode add_parallel_transfers(struct GlobalConfig *global,
     }
     per->added = TRUE;
 
-    result = pre_transfer(global, per);
+    result = pre_transfer(per);
     if(result)
       return result;
 
@@ -1931,7 +1928,7 @@ static CURLcode serial_transfers(struct GlobalConfig *global,
 
     start = curlx_now();
     if(!per->skip) {
-      result = pre_transfer(global, per);
+      result = pre_transfer(per);
       if(result)
         break;