[curl/f15] actually fix SIGSEGV of curl -O -J given more than one URL (#723075)

Paul Howarth pghmcfc at fedoraproject.org
Sun Aug 21 15:52:24 UTC 2011


commit f7c8df03000ab00ad879bae39b6112592d313c41
Author: Paul Howarth <paul at city-fan.org>
Date:   Sun Aug 21 16:47:19 2011 +0100

    actually fix SIGSEGV of curl -O -J given more than one URL (#723075)

 0010-curl-7.21.3-61ae7e9.patch |   46 ++++++++++++++++++++++++++++++++++++++++
 curl.spec                      |    7 +++++-
 2 files changed, 52 insertions(+), 1 deletions(-)
---
diff --git a/0010-curl-7.21.3-61ae7e9.patch b/0010-curl-7.21.3-61ae7e9.patch
new file mode 100644
index 0000000..87a1365
--- /dev/null
+++ b/0010-curl-7.21.3-61ae7e9.patch
@@ -0,0 +1,46 @@
+From 61ae7e9ce77af86a7290fca8bf73c9798f80845c Mon Sep 17 00:00:00 2001
+From: Daniel Stenberg <daniel at haxx.se>
+Date: Sun, 21 Aug 2011 12:59:06 +0200
+Subject: [PATCH] main: fix segfault
+
+Follow-up to commit 5eb2396cd as that wasn't complete.
+
+At times HEADERFUNCTION+HEADERDATA was set only to have only HEADERDATA
+set in the subsequent loop which could cause a NULL to get sent as
+userdata to 'header_callback' which wasn't made to handle that.
+
+Now HEADERFUNCTION is explicitly set to NULL if it isn't set to the
+callback.
+---
+ src/main.c |    8 ++++++--
+ 1 files changed, 6 insertions(+), 2 deletions(-)
+
+diff --git a/src/main.c b/src/main.c
+index 276718b..56cd133 100644
+--- a/src/main.c
++++ b/src/main.c
+@@ -5415,8 +5415,6 @@ operate(struct Configurable *config, int argc, argv_item_t argv[])
+         my_setopt(curl, CURLOPT_QUOTE, config->quote);
+         my_setopt(curl, CURLOPT_POSTQUOTE, config->postquote);
+         my_setopt(curl, CURLOPT_PREQUOTE, config->prequote);
+-        my_setopt(curl, CURLOPT_HEADERDATA,
+-                  config->headerfile?&heads:NULL);
+         my_setopt_str(curl, CURLOPT_COOKIEFILE, config->cookiefile);
+         /* cookie jar was added in 7.9 */
+         if(config->cookiejar)
+@@ -5621,6 +5619,12 @@ operate(struct Configurable *config, int argc, argv_item_t argv[])
+           my_setopt(curl, CURLOPT_HEADERFUNCTION, header_callback);
+           my_setopt(curl, CURLOPT_HEADERDATA, &outs);
+         }
++        else {
++          /* if HEADERFUNCTION was set to something in the previous loop, it
++             is important that we set it (back) to NULL now */
++          my_setopt(curl, CURLOPT_HEADERFUNCTION, NULL);
++          my_setopt(curl, CURLOPT_HEADERDATA, config->headerfile?&heads:NULL);
++        }
+ 
+         if(config->resolve)
+           /* new in 7.21.3 */
+-- 
+1.7.6
+
diff --git a/curl.spec b/curl.spec
index bb9c1b1..1b083c4 100644
--- a/curl.spec
+++ b/curl.spec
@@ -28,6 +28,7 @@ Patch6: 0006-curl-7.21.3-a7864c4.patch
 
 # fix SIGSEGV of curl -O -J given more than one URLs (#723075)
 Patch7: 0007-curl-7.21.3-5eb2396.patch
+Patch10: 0010-curl-7.21.3-61ae7e9.patch
 
 # introduce the --delegation option of curl (#730444)
 Patch8: 0008-curl-7.21.3-5538904.patch
@@ -149,6 +150,7 @@ done
 %patch7 -p1
 %patch8 -p1
 %patch9 -p1
+%patch10 -p1
 
 # Fedora patches
 %patch101 -p1
@@ -262,8 +264,11 @@ rm -rf $RPM_BUILD_ROOT
 %{_datadir}/aclocal/libcurl.m4
 
 %changelog
+* Sun Aug 21 2011 Paul Howarth <paul at city-fan.org> 7.21.3-11
+- actually fix SIGSEGV of curl -O -J given more than one URL (#723075)
+
 * Tue Aug 16 2011 Kamil Dudka <kdudka at redhat.com> 7.21.3-10
-- fix SIGSEGV of curl -O -J given more than one URLs (#723075)
+- fix SIGSEGV of curl -O -J given more than one URL (#723075)
 - introduce the --delegation option of curl (#730444)
 - initialize NSS with no database if the selected database is broken (#728562)
 


More information about the scm-commits mailing list