gnu: curl: Fix i686 test failure.
authorMarius Bakke <mbakke@fastmail.com>
Sun, 13 Aug 2017 14:46:41 +0000 (16:46 +0200)
committerMarius Bakke <mbakke@fastmail.com>
Sun, 13 Aug 2017 14:46:41 +0000 (16:46 +0200)
* gnu/packages/patches/curl-bounds-check.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
* gnu/packages/curl.scm (curl-7.55.0)[source]: Use it.

gnu/local.mk
gnu/packages/curl.scm
gnu/packages/patches/curl-bounds-check.patch [new file with mode: 0644]

index c12fd85..1e750ab 100644 (file)
@@ -567,6 +567,7 @@ dist_patch_DATA =                                           \
   %D%/packages/patches/crossmap-allow-system-pysam.patch       \
   %D%/packages/patches/csound-header-ordering.patch            \
   %D%/packages/patches/clucene-contribs-lib.patch               \
+  %D%/packages/patches/curl-bounds-check.patch                 \
   %D%/packages/patches/cursynth-wave-rand.patch                        \
   %D%/packages/patches/cyrus-sasl-CVE-2013-4122.patch          \
   %D%/packages/patches/dblatex-remove-multirow.patch           \
index d6e32e4..3f6335a 100644 (file)
@@ -132,6 +132,7 @@ tunneling, and so on.")
         (method url-fetch)
         (uri (string-append "https://curl.haxx.se/download/curl-"
                             version ".tar.xz"))
+        (patches (search-patches "curl-bounds-check.patch"))
         (sha256
          (base32
           "1785vxi0jamiv9d1wr1l45g0fm9ircxdfyfzf7ld8zv0z0i8bmfd"))))
diff --git a/gnu/packages/patches/curl-bounds-check.patch b/gnu/packages/patches/curl-bounds-check.patch
new file mode 100644 (file)
index 0000000..4b8ff65
--- /dev/null
@@ -0,0 +1,19 @@
+Fix test failure on some 32-bit platforms.
+
+Patch copied from upstream source repository:
+
+https://github.com/curl/curl/commit/45a560390c4356bcb81d933bbbb229c8ea2acb63
+
+diff --git a/src/tool_paramhlp.c b/src/tool_paramhlp.c
+index b9dedc989e..85c5e79a7e 100644
+--- a/src/tool_paramhlp.c
++++ b/src/tool_paramhlp.c
+@@ -218,7 +218,7 @@ static ParameterError str2double(double *val, const char *str, long max)
+     num = strtod(str, &endptr);
+     if(errno == ERANGE)
+       return PARAM_NUMBER_TOO_LARGE;
+-    if((long)num > max) {
++    if(num > max) {
+       /* too large */
+       return PARAM_NUMBER_TOO_LARGE;
+     }