Update libcurl to version 7.32.0
cover Update libcurl to version 7.32.0
These patches update the version of libcurl to version 7.32.0 and remove the static library and documentation from being installed on the target.
NOTE: these patches depend on my previously submitted patches for libssh2
Ryan Barnett (2):
libcurl: up revision to 7.32.0
libcurl: remove man and static lib from target
package/libcurl/libcurl-01-CVE-2013-0249.patch | 65 ------------------------ package/libcurl/libcurl-02-CVE-2013-1944.patch | 57 --------------------- package/libcurl/libcurl-03-CVE-2013-2174.patch | 38 -------------- package/libcurl/libcurl.mk | 24 ++++++++- 4 files changed, 22 insertions(+), 162 deletions(-) delete mode 100644 package/libcurl/libcurl-01-CVE-2013-0249.patch delete mode 100644 package/libcurl/libcurl-02-CVE-2013-1944.patch delete mode 100644 package/libcurl/libcurl-03-CVE-2013-2174.patch
PATCH 1/2 libcurl: up revision to 7.32.0
Updating revision of libcurl to version 7.32.0
--- package/libcurl/libcurl-01-CVE-2013-0249.patch | 65 ------------------------ package/libcurl/libcurl-02-CVE-2013-1944.patch | 57 --------------------- package/libcurl/libcurl-03-CVE-2013-2174.patch | 38 -------------- package/libcurl/libcurl.mk | 4 +- 4 files changed, 2 insertions(+), 162 deletions(-) delete mode 100644 package/libcurl/libcurl-01-CVE-2013-0249.patch delete mode 100644 package/libcurl/libcurl-02-CVE-2013-1944.patch delete mode 100644 package/libcurl/libcurl-03-CVE-2013-2174.patch
package/libcurl/libcurl-01-CVE-2013-0249.patch deleted +0 -65
@@ -1,65 +0,0 @@ -From ee45a34907ffeb5fd95b0513040d8491d565b663 Mon Sep 17 00:00:00 2001 -From: Eldar Zaitov <[email protected]> -Date: Wed, 30 Jan 2013 23:22:27 +0100 -Subject: [PATCH] Curl_sasl_create_digest_md5_message: fix buffer overflow - -When negotiating SASL DIGEST-MD5 authentication, the function -Curl_sasl_create_digest_md5_message() uses the data provided from the -server without doing the proper length checks and that data is then -appended to a local fixed-size buffer on the stack. - -This vulnerability can be exploited by someone who is in control of a -server that a libcurl based program is accessing with POP3, SMTP or -IMAP. For applications that accept user provided URLs, it is also -thinkable that a malicious user would feed an application with a URL to -a server hosting code targetting this flaw. - -Bug: http://curl.haxx.se/docs/adv_20130206.html ---- - lib/curl_sasl.c | 23 ++++++----------------- - 1 file changed, 6 insertions(+), 17 deletions(-) - -diff --git a/lib/curl_sasl.c b/lib/curl_sasl.c -index 57116b6..d07387d 100644 ---- a/lib/curl_sasl.c -+++ b/lib/curl_sasl.c -@@ -346,9 +346,7 @@ CURLcode Curl_sasl_create_digest_md5_message(struct SessionHandle *data, - snprintf(&HA1_hex[2 * i], 3, "%02x", digest[i]); - - /* Prepare the URL string */ -- strcpy(uri, service); -- strcat(uri, "/"); -- strcat(uri, realm); -+ snprintf(uri, sizeof(uri), "%s/%s", service, realm); - - /* Calculate H(A2) */ - ctxt = Curl_MD5_init(Curl_DIGEST_MD5); -@@ -392,20 +390,11 @@ CURLcode Curl_sasl_create_digest_md5_message(struct SessionHandle *data, - for(i = 0; i < MD5_DIGEST_LEN; i++) - snprintf(&resp_hash_hex[2 * i], 3, "%02x", digest[i]); - -- strcpy(response, "username=\""); -- strcat(response, userp); -- strcat(response, "\",realm=\""); -- strcat(response, realm); -- strcat(response, "\",nonce=\""); -- strcat(response, nonce); -- strcat(response, "\",cnonce=\""); -- strcat(response, cnonce); -- strcat(response, "\",nc="); -- strcat(response, nonceCount); -- strcat(response, ",digest-uri=\""); -- strcat(response, uri); -- strcat(response, "\",response="); -- strcat(response, resp_hash_hex); -+ snprintf(response, sizeof(response), -+ "username=\"%s\",realm=\"%s\",nonce=\"%s\"," -+ "cnonce=\"%s\",nc=\"%s\",digest-uri=\"%s\",response=%s", -+ userp, realm, nonce, -+ cnonce, nonceCount, uri, resp_hash_hex); - - /* Base64 encode the reply */ - return Curl_base64_encode(data, response, 0, outptr, outlen); --- -1.7.10.4 -
package/libcurl/libcurl-02-CVE-2013-1944.patch deleted +0 -57
57 lines not on this page · raw message
package/libcurl/libcurl-03-CVE-2013-2174.patch deleted +0 -38
@@ -1,38 +0,0 @@ -From 6032f0ff672f09babf69d9d42bcde6eb9eeb5bea Mon Sep 17 00:00:00 2001 -From: Daniel Stenberg <[email protected]> -Date: Sun, 19 May 2013 23:24:29 +0200 -Subject: [PATCH] Curl_urldecode: no peeking beyond end of input buffer - -Security problem: CVE-2013-2174 - -If a program would give a string like "%" to curl_easy_unescape(), it -would still consider the % as start of an encoded character. The -function then not only read beyond the buffer but it would also deduct -the *unsigned* counter variable for how many more bytes there's left to -read in the buffer by two, making the counter wrap. Continuing this, the -function would go on reading beyond the buffer and soon writing beyond -the allocated target buffer... - -Bug: http://curl.haxx.se/docs/adv_20130622.html -Reported-by: Timo Sirainen ---- - lib/escape.c | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/lib/escape.c b/lib/escape.c -index 6a26cf8..aa7db2c 100644 ---- a/lib/escape.c -+++ b/lib/escape.c -@@ -159,7 +159,8 @@ CURLcode Curl_urldecode(struct SessionHandle *data, - - while(--alloc > 0) { - in = *string; -- if(('%' == in) && ISXDIGIT(string[1]) && ISXDIGIT(string[2])) { -+ if(('%' == in) && (alloc > 2) && -+ ISXDIGIT(string[1]) && ISXDIGIT(string[2])) { - /* this is two hexadecimal digits following a '%' */ - char hexstr[3]; - char *ptr; --- -1.7.10.4 -
package/libcurl/libcurl.mk +2 -2
@@ -4,7 +4,7 @@ # ################################################################################ -LIBCURL_VERSION = 7.28.1 +LIBCURL_VERSION = 7.32.0 LIBCURL_SOURCE = curl-$(LIBCURL_VERSION).tar.bz2 LIBCURL_SITE = http://curl.haxx.se/download LIBCURL_LICENSE = ICS
@@ -27,7 +27,7 @@ LIBCURL_CONF_ENV += ac_cv_lib_crypto_CRYPTO_lock=yes # Fix it by setting LD_LIBRARY_PATH to something sensible so those libs # are found first. LIBCURL_CONF_ENV += LD_LIBRARY_PATH=$$LD_LIBRARY_PATH:/lib:/usr/lib -LIBCURL_CONF_OPT += --with-ssl=$(STAGING_DIR)/usr \ +LIBCURL_CONF_OPT += --with-ssl \ --with-random=/dev/urandom \ --with-ca-path=/etc/ssl/certs else
Signature · 1 line
1.7.1
PATCH 2/2 libcurl: remove man and static lib from target
In reply to Ryan BarnettRemove the documentation that libcurl installs on the target along with removing the static libraries on the target. The documentation and static library will only exist in the sysroot.
--- package/libcurl/libcurl.mk | 20 ++++++++++++++++++++ 1 files changed, 20 insertions(+), 0 deletions(-)
package/libcurl/libcurl.mk +20 -0
@@ -54,6 +54,26 @@ endef LIBCURL_POST_INSTALL_TARGET_HOOKS += LIBCURL_TARGET_CLEANUP endif +# Remove unneeded files/directories from target +LIBCURL_UNNEEDED_FILES = \ + usr/lib/libcurl.a \ + usr/lib/libcurl.la \ + usr/include/curl \ + usr/lib/pkgconfig/libcurl.pc +define LIBCURL_REMOVE_UNNEEDED_FILES + rm -rf $(addprefix $(TARGET_DIR)/, $(LIBCURL_UNNEEDED_FILES)) +endef +LIBCURL_POST_INSTALL_TARGET_HOOKS += LIBCURL_REMOVE_UNNEEDED_FILES + +# Remove Documentation +ifneq ($(BR2_HAVE_DOCUMENTATION),y) +define LIBCURL_TARGET_REMOVE_DOCUMENTATION + rm -f $(TARGET_DIR)/usr/share/man/man3/*curl* + rm -f $(TARGET_DIR)/usr/share/man/man1/*curl* +endef +LIBCURL_POST_INSTALL_TARGET_HOOKS += LIBCURL_TARGET_REMOVE_DOCUMENTATION +endif + $(eval $(autotools-package)) curl: libcurl
Signature · 1 line
1.7.1
PATCH 2/2 libcurl: remove man and static lib from target
Quoted 3 lines · Ryan Barnett
Remove the documentation that libcurl installs on the target along with removing the static libraries on the target. The documentation and static library will only exist in the sysroot.
This shouldn't be needed as it is done by target-finalize. Or doesn't
that work for you?
Regards,
Arnout
Quoted 38 lines
Signed-off-by Ryan Barnett <[email protected]>--- package/libcurl/libcurl.mk | 20 ++++++++++++++++++++ 1 files changed, 20 insertions(+), 0 deletions(-)package/libcurl/libcurl.mk +20
-0@@ -54,6 +54,26 @@ endef LIBCURL_POST_INSTALL_TARGET_HOOKS += LIBCURL_TARGET_CLEANUP endif +# Remove unneeded files/directories from target +LIBCURL_UNNEEDED_FILES = \ + usr/lib/libcurl.a \ + usr/lib/libcurl.la \ + usr/include/curl \ + usr/lib/pkgconfig/libcurl.pc +define LIBCURL_REMOVE_UNNEEDED_FILES + rm -rf $(addprefix $(TARGET_DIR)/, $(LIBCURL_UNNEEDED_FILES)) +endef +LIBCURL_POST_INSTALL_TARGET_HOOKS += LIBCURL_REMOVE_UNNEEDED_FILES + +# Remove Documentation +ifneq ($(BR2_HAVE_DOCUMENTATION),y) +define LIBCURL_TARGET_REMOVE_DOCUMENTATION + rm -f $(TARGET_DIR)/usr/share/man/man3/*curl* + rm -f $(TARGET_DIR)/usr/share/man/man1/*curl* +endef +LIBCURL_POST_INSTALL_TARGET_HOOKS += LIBCURL_TARGET_REMOVE_DOCUMENTATION +endif + $(eval $(autotools-package)) curl: libcurl
Signature · 6 lines
Arnout Vandecappelle arnout at mind be Senior Embedded Software Architect +32-16-286500 Essensium/Mind http://www.mind.be G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F
PATCH 2/2 libcurl: remove man and static lib from target
Arnout -
As stated in my previous email - I didn't realize target finalize takes care of this. I will resubmit with just upgrading the libcurl version.
Thanks,
-Ryan
Ryan J Barnett / Software Engineer / Platform SW MS 137-157, 855 35th St NE, Cedar Rapids, IA, 52498-3161, US
Phone: 319-263-3880 / VPN: 263-3880
rjbarnet at rockwellcollins.com www.rockwellcollins.com
From: Arnout Vandecappelle <[email protected]> To: Ryan Barnett <[email protected]>
Date: 08/29/2013 04:37 PM Subject: Re: [Buildroot] [PATCH 2/2] libcurl: remove man and static
lib from target
Quoted 3 lines · Ryan Barnett
Remove the documentation that libcurl installs on the target along with removing the static libraries on the target. The documentation and static library will only exist in the sysroot.
This shouldn't be needed as it is done by target-finalize. Or doesn't
that work for you?
Regards,
Arnout
Quoted 12 lines
Signed-off-by Ryan Barnett <[email protected]>--- package/libcurl/libcurl.mk | 20 ++++++++++++++++++++ 1 files changed, 20 insertions(+), 0 deletions(-)package/libcurl/libcurl.mk +0
-0@@ -54,6 +54,26 @@ endef LIBCURL_POST_INSTALL_TARGET_HOOKS += LIBCURL_TARGET_CLEANUP
package/libcurl/libcurl.mk endef · line 64
Quoted 10 lines
package/libcurl/libcurl.mk +8
-0endif +# Remove unneeded files/directories from target +LIBCURL_UNNEEDED_FILES = \ + usr/lib/libcurl.a \ + usr/lib/libcurl.la \ + usr/include/curl \ + usr/lib/pkgconfig/libcurl.pc +define LIBCURL_REMOVE_UNNEEDED_FILES + rm -rf $(addprefix $(TARGET_DIR)/,
$(LIBCURL_UNNEEDED_FILES))
package/libcurl/libcurl.mk endef
Quoted 10 lines
package/libcurl/libcurl.mk +10
-0+endef +LIBCURL_POST_INSTALL_TARGET_HOOKS += LIBCURL_REMOVE_UNNEEDED_FILES + +# Remove Documentation +ifneq ($(BR2_HAVE_DOCUMENTATION),y) +define LIBCURL_TARGET_REMOVE_DOCUMENTATION + rm -f $(TARGET_DIR)/usr/share/man/man3/*curl* + rm -f $(TARGET_DIR)/usr/share/man/man1/*curl* +endef +LIBCURL_POST_INSTALL_TARGET_HOOKS +=
LIBCURL_TARGET_REMOVE_DOCUMENTATION
Quoted 6 lines
package/libcurl/libcurl.mk +2
-0+endif + $(eval $(autotools-package)) curl: libcurl
Signature · 18 lines
Arnout Vandecappelle arnout at mind be Senior Embedded Software Architect +32-16-286500 Essensium/Mind http://www.mind.be G.Geenslaan 9, 3001 Leuven, Belgium BE 872 984 063 RPR Leuven LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle GPG fingerprint: 7CB5 E4CC 6C2E EFD4 6E3D A754 F963 ECAB 2450 2F1F -------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20130829/0233203c/attachment.html> -------------- next part -------------- A non-text attachment was scrubbed... Name: not available Type: image/gif Size: 2004 bytes Desc: not available URL: <http://lists.busybox.net/pipermail/buildroot/attachments/20130829/0233203c/attachment.gif>