]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
duphandle: make sure CURLOPT_RESOLVE is duplicated fine too
authorDaniel Stenberg <daniel@haxx.se>
Thu, 12 Apr 2018 11:09:04 +0000 (13:09 +0200)
committerDaniel Stenberg <daniel@haxx.se>
Thu, 12 Apr 2018 14:21:24 +0000 (16:21 +0200)
Verified in test 1502 now

Fixes #2485
Closes #2486
Reported-by: Ernst Sjöstrand
lib/easy.c
tests/libtest/lib1502.c

index c99758617f9dc925ae719b082a53f2fc33fac9a2..6b914353de6cb704b22225ec201f971629273615 100644 (file)
@@ -892,6 +892,9 @@ static CURLcode dupset(struct Curl_easy *dst, struct Curl_easy *src)
   /* Duplicate mime data. */
   result = Curl_mime_duppart(&dst->set.mimepost, &src->set.mimepost);
 
+  if(src->set.resolve)
+    dst->change.resolve = dst->set.resolve;
+
   return result;
 }
 
index 6f253c7ecf950bb7a82640f5681e6a204a332484..5b75e2f2abe3c27b0272a523c92e0c17f3d4233f 100644 (file)
@@ -5,7 +5,7 @@
  *                            | (__| |_| |  _ <| |___
  *                             \___|\___/|_| \_\_____|
  *
- * Copyright (C) 1998 - 2017, Daniel Stenberg, <daniel@haxx.se>, et al.
+ * Copyright (C) 1998 - 2018, Daniel Stenberg, <daniel@haxx.se>, et al.
  *
  * This software is licensed as described in the file COPYING, which
  * you should have received as part of this distribution. The terms
@@ -40,6 +40,7 @@
 int test(char *URL)
 {
   CURL *easy = NULL;
+  CURL *dup;
   CURLM *multi = NULL;
   int still_running;
   int res = 0;
@@ -72,6 +73,15 @@ int test(char *URL)
   easy_setopt(easy, CURLOPT_HEADER, 1L);
   easy_setopt(easy, CURLOPT_RESOLVE, dns_cache_list);
 
+  dup = curl_easy_duphandle(easy);
+  if(dup) {
+    curl_easy_cleanup(easy);
+    easy = dup;
+  }
+  else {
+    return CURLE_OUT_OF_MEMORY;
+  }
+
   multi_init(multi);
 
   multi_add_handle(multi, easy);