From 4a5f304d06a10e81d3e88255a13d4d19db5e7086 Mon Sep 17 00:00:00 2001 From: Kamil Dudka Date: Tue, 25 May 2010 15:36:27 +0000 Subject: [PATCH] - fix -J/--remote-header-name to strip CR-LF (upstream patch) --- curl-7.20.1-47dda4a.patch | 53 +++++++++++++++++++++++++++++++++++++++ curl.spec | 9 ++++++- 2 files changed, 61 insertions(+), 1 deletion(-) create mode 100644 curl-7.20.1-47dda4a.patch diff --git a/curl-7.20.1-47dda4a.patch b/curl-7.20.1-47dda4a.patch new file mode 100644 index 0000000..50cc417 --- /dev/null +++ b/curl-7.20.1-47dda4a.patch @@ -0,0 +1,53 @@ + CHANGES | 4 ++++ + src/main.c | 23 ++++++++++++++++++++--- + 2 files changed, 24 insertions(+), 3 deletions(-) + +diff --git a/CHANGES b/CHANGES +index 7928690..db2d68b 100644 +--- a/CHANGES ++++ b/CHANGES +@@ -6,6 +6,10 @@ + + Changelog + ++Daniel Stenberg (19 Apr 2010) ++- -J/--remote-header-name didn't strip trailing carriage returns or linefeeds ++ properly, so they could be used in the file name. ++ + Kamil Dudka (11 May 2010) + - CRL support in libcurl-NSS has been completely broken. Now it works. Original + bug report: https://bugzilla.redhat.com/581926 +diff --git a/src/main.c b/src/main.c +index 6e3ef3d..d532846 100644 +--- a/src/main.c ++++ b/src/main.c +@@ -4200,9 +4200,26 @@ parse_filename(char *ptr, size_t len) + } + } + +- q = strrchr(p, quote); +- if (q) +- *q = 0; ++ if(quote) { ++ /* if the file name started with a quote, then scan for the end quote and ++ stop there */ ++ q = strrchr(p, quote); ++ if (q) ++ *q = 0; ++ } ++ else ++ q = NULL; /* no start quote, so no end has been found */ ++ ++ if(!q) { ++ /* make sure the file name doesn't end in \r or \n */ ++ q = strchr(p, '\r'); ++ if(q) ++ *q = 0; ++ ++ q = strchr(p, '\n'); ++ if(q) ++ *q = 0; ++ } + + if (copy!=p) + memmove(copy, p, strlen(p)+1); diff --git a/curl.spec b/curl.spec index 34ce401..2c3e560 100644 --- a/curl.spec +++ b/curl.spec @@ -1,7 +1,7 @@ Summary: A utility for getting files from remote servers (FTP, HTTP, and others) Name: curl Version: 7.20.1 -Release: 5%{?dist} +Release: 6%{?dist} License: MIT Group: Applications/Internet Source: http://curl.haxx.se/download/%{name}-%{version}.tar.lzma @@ -28,6 +28,9 @@ Patch3: curl-7.20.1-crl.patch # (the CA pass phrase used in the patch is 'libcurl') Patch4: curl-7.20.1-crl-test.patch +# upstream commit 47dda4a1d43c9341753388ab3babb0d27cf34840 +Patch5: curl-7.20.1-47dda4a.patch + # patch making libcurl multilib ready Patch101: curl-7.20.0-multilib.patch @@ -123,6 +126,7 @@ done %patch1 -p1 %patch2 -p1 %patch3 -p1 +%patch5 -p1 # upstream patches (not yet applied) %patch4 -p1 @@ -240,6 +244,9 @@ rm -rf $RPM_BUILD_ROOT %{_datadir}/aclocal/libcurl.m4 %changelog +* Tue May 25 2010 Kamil Dudka 7.20.1-6 +- fix -J/--remote-header-name to strip CR-LF (upstream patch) + * Wed Apr 28 2010 Kamil Dudka 7.20.1-5 - CRL support now works again (#581926) - make it possible to start a testing OpenSSH server when building with SELinux