diff options
author | Mark H Weaver <mhw@netris.org> | 2017-06-18 02:36:51 -0400 |
---|---|---|
committer | Mark H Weaver <mhw@netris.org> | 2017-06-18 02:36:51 -0400 |
commit | 9d4385634d098cc0fb35bfe58179f7d855352e39 (patch) | |
tree | 653cfd7a6faecaf42129b1aa47703e7bd01bc471 /gnu/packages/patches | |
parent | a6aff3528c32cc921bddd78b254678a1fc121f21 (diff) | |
parent | 96fd87c96bd6987a967575aaa931c5a7b1c84e21 (diff) | |
download | gnu-guix-9d4385634d098cc0fb35bfe58179f7d855352e39.tar gnu-guix-9d4385634d098cc0fb35bfe58179f7d855352e39.tar.gz |
Merge branch 'master' into core-updates
Diffstat (limited to 'gnu/packages/patches')
-rw-r--r-- | gnu/packages/patches/crawl-upgrade-saves.patch | 83 | ||||
-rw-r--r-- | gnu/packages/patches/gcc-4.6-gnu-inline.patch | 65 | ||||
-rw-r--r-- | gnu/packages/patches/gspell-dash-test.patch | 20 | ||||
-rw-r--r-- | gnu/packages/patches/guile-ssh-channel-finalization.patch | 28 | ||||
-rw-r--r-- | gnu/packages/patches/libextractor-ffmpeg-3.patch | 360 | ||||
-rw-r--r-- | gnu/packages/patches/libmwaw-CVE-2017-9433.patch | 33 | ||||
-rw-r--r-- | gnu/packages/patches/nss-disable-long-b64-tests.patch | 34 | ||||
-rw-r--r-- | gnu/packages/patches/nss-increase-test-timeout.patch | 6 | ||||
-rw-r--r-- | gnu/packages/patches/osip-CVE-2017-7853.patch | 40 | ||||
-rw-r--r-- | gnu/packages/patches/zziplib-CVE-2017-5974.patch | 28 | ||||
-rw-r--r-- | gnu/packages/patches/zziplib-CVE-2017-5975.patch | 32 | ||||
-rw-r--r-- | gnu/packages/patches/zziplib-CVE-2017-5976.patch | 61 | ||||
-rw-r--r-- | gnu/packages/patches/zziplib-CVE-2017-5978.patch | 37 | ||||
-rw-r--r-- | gnu/packages/patches/zziplib-CVE-2017-5979.patch | 19 | ||||
-rw-r--r-- | gnu/packages/patches/zziplib-CVE-2017-5981.patch | 19 |
15 files changed, 461 insertions, 404 deletions
diff --git a/gnu/packages/patches/crawl-upgrade-saves.patch b/gnu/packages/patches/crawl-upgrade-saves.patch new file mode 100644 index 0000000000..301942dc30 --- /dev/null +++ b/gnu/packages/patches/crawl-upgrade-saves.patch @@ -0,0 +1,83 @@ +Store the crawl version in the textdatabases in SAVEDIR and +upgrade the databases when the crawl version changes. + +By default crawl checks for a mtime difference on files in DATADIR to see if an +upgrade is required, but guix nulls all file dates, +and crawl would never upgrade saves. + +--- a/source/database.cc 2016-05-31 09:56:08.000000000 +0200 ++++ a/source/database.cc 2017-06-05 03:00:19.270632107 +0200 +@@ -25,6 +25,7 @@ + #include "syscalls.h" + #include "threads.h" + #include "unicode.h" ++#include "version.h" + + // TextDB handles dependency checking the db vs text files, creating the + // db, loading, and destroying the DB. +@@ -55,6 +56,7 @@ + vector<string> _input_files; + DBM* _db; + string timestamp; ++ string version; + TextDB *_parent; + const char* lang() { return _parent ? Options.lang_name : 0; } + public: +@@ -165,7 +167,7 @@ + + TextDB::TextDB(const char* db_name, const char* dir, ...) + : _db_name(db_name), _directory(dir), +- _db(nullptr), timestamp(""), _parent(0), translation(0) ++ _db(nullptr), timestamp(""), version(""), _parent(0), translation(0) + { + va_list args; + va_start(args, dir); +@@ -187,7 +189,7 @@ + : _db_name(parent->_db_name), + _directory(parent->_directory + Options.lang_name + "/"), + _input_files(parent->_input_files), // FIXME: pointless copy +- _db(nullptr), timestamp(""), _parent(parent), translation(nullptr) ++ _db(nullptr), timestamp(""), version(""), _parent(parent), translation(nullptr) + { + } + +@@ -202,6 +204,9 @@ + return false; + + timestamp = _query_database(*this, "TIMESTAMP", false, false, true); ++ version = _query_database(*this, "VERSION", false, false, true); ++ if (version.empty()) ++ return false; + if (timestamp.empty()) + return false; + +@@ -245,6 +250,9 @@ + string ts; + bool no_files = true; + ++ if (string(Version::Long) != version) ++ return true; ++ + for (const string &file : _input_files) + { + string full_input_path = _directory + file; +@@ -261,7 +269,7 @@ + ts += buf; + } + +- if (no_files && timestamp.empty()) ++ if (no_files && timestamp.empty() && version.empty()) + { + // No point in empty databases, although for simplicity keep ones + // for disappeared translations for now. +@@ -321,7 +329,10 @@ + _store_text_db(full_input_path, _db); + } + } ++ ++ string current_version = string(Version::Long); + _add_entry(_db, "TIMESTAMP", ts); ++ _add_entry(_db, "VERSION", current_version); + + dbm_close(_db); + _db = 0; diff --git a/gnu/packages/patches/gcc-4.6-gnu-inline.patch b/gnu/packages/patches/gcc-4.6-gnu-inline.patch new file mode 100644 index 0000000000..710d358a8b --- /dev/null +++ b/gnu/packages/patches/gcc-4.6-gnu-inline.patch @@ -0,0 +1,65 @@ +This patch was taken from https://gcc.gnu.org/ml/gcc-patches/2015-08/msg00375.html. +It is used by propeller-gcc-4. + +Since the 3.0.3 release of gperf (made in May 2007), the generated func +has had the gnu_inline attribute applied to it. The gcc source however +has not been updated to include that which has lead to a mismatch. + +In practice, this hasn't been an issue for two reasons: +(1) Before gcc-5, the default standard was (gnu) C89, and gcc does not +warn or throw an error in this mode. +(2) Starting with gcc-4.8, the compiler driver used to build gcc was +changed to C++, and g++ does not warn or throw an error in this mode. + +This error does show up though when using gcc-5 to build gcc-4.7 or +older as then the default is (gnu) C11 and the C compiler driver is +used. That failure looks like: +In file included from .../gcc-4.7.4/gcc/cp/except.c:990:0: +cfns.gperf: At top level: +cfns.gperf:101:1: error: 'gnu_inline' attribute present on 'libc_name_p' +cfns.gperf:26:14: error: but not here + +Whether the compiler should always emit this error regardless of the +active standard or compiler driver is debatable (I think it should be +consistent -- either always do it or never do it). + +2015-08-06 Mike Frysinger <vapier@gentoo.org> + + * cfns.gperf [__GNUC__, __GNUC_STDC_INLINE__]: Apply the + __gnu_inline__ attribute. + * cfns.h: Regenerated. +--- + gcc/cp/cfns.gperf | 3 +++ + gcc/cp/cfns.h | 3 +++ + 2 files changed, 6 insertions(+) + +diff --git a/gcc/cp/cfns.gperf b/gcc/cp/cfns.gperf +index 68acd3d..953262f 100644 +--- a/gcc/cp/cfns.gperf ++++ b/gcc/cp/cfns.gperf +@@ -22,6 +22,9 @@ __inline + static unsigned int hash (const char *, unsigned int); + #ifdef __GNUC__ + __inline ++#ifdef __GNUC_STDC_INLINE__ ++__attribute__ ((__gnu_inline__)) ++#endif + #endif + const char * libc_name_p (const char *, unsigned int); + %} +diff --git a/gcc/cp/cfns.h b/gcc/cp/cfns.h +index 1c6665d..6d00c0e 100644 +--- a/gcc/cp/cfns.h ++++ b/gcc/cp/cfns.h +@@ -53,6 +53,9 @@ __inline + static unsigned int hash (const char *, unsigned int); + #ifdef __GNUC__ + __inline ++#ifdef __GNUC_STDC_INLINE__ ++__attribute__ ((__gnu_inline__)) ++#endif + #endif + const char * libc_name_p (const char *, unsigned int); + /* maximum key range = 391, duplicates = 0 */ +-- +2.4.4 diff --git a/gnu/packages/patches/gspell-dash-test.patch b/gnu/packages/patches/gspell-dash-test.patch index e737921c4b..1c9d77cfba 100644 --- a/gnu/packages/patches/gspell-dash-test.patch +++ b/gnu/packages/patches/gspell-dash-test.patch @@ -1,16 +1,22 @@ Somehow, Aspell 0.60.6.1 and aspell-dict-en-2016.11.20-0 don't consider this a valid spelling. Skip it. ---- gspell-1.3.2/testsuite/test-checker.c 2017-05-17 16:02:40.832415940 +0200 -+++ gspell-1.3.2/testsuite/test-checker.c 2017-05-17 16:02:50.768351895 +0200 -@@ -101,9 +101,6 @@ test_dashes (void) - - checker = gspell_checker_new (lang); - +TODO: Migrate to using hunspell. According to upstream, this bug won't be fixed. +See https://bugzilla.gnome.org/show_bug.cgi?id=772406. +--- a/testsuite/test-checker.c 2017-03-24 09:50:50.000000000 -0400 ++++ b/testsuite/test-checker.c 2017-06-15 21:47:07.116173895 -0400 +@@ -105,10 +105,11 @@ + * be considered deprecated, it is better to use hunspell, so WONTFIX. + * For more details, see: + * https://bugzilla.gnome.org/show_bug.cgi?id=772406 ++ * ++ * correctly_spelled = gspell_checker_check_word (checker, "spell-checking", -1, &error); ++ * g_assert_no_error (error); ++ * g_assert (correctly_spelled); + */ - correctly_spelled = gspell_checker_check_word (checker, "spell-checking", -1, &error); - g_assert_no_error (error); - g_assert (correctly_spelled); correctly_spelled = gspell_checker_check_word (checker, "nrst-auie", -1, &error); g_assert_no_error (error); - diff --git a/gnu/packages/patches/guile-ssh-channel-finalization.patch b/gnu/packages/patches/guile-ssh-channel-finalization.patch new file mode 100644 index 0000000000..54b5055a20 --- /dev/null +++ b/gnu/packages/patches/guile-ssh-channel-finalization.patch @@ -0,0 +1,28 @@ +Avoid asynchronous channel finalization, which could lead to segfaults due to +libssh not being thread-safe: <https://bugs.gnu.org/26976>. + +--- guile-ssh-0.11.0/modules/ssh/dist/node.scm 2017-06-13 14:37:44.861671297 +0200 ++++ guile-ssh-0.11.0/modules/ssh/dist/node.scm 2017-06-13 14:38:02.841580565 +0200 +@@ -391,11 +391,18 @@ listens on an expected port, return #f o + "Evaluate QUOTED-EXP on the node and return the evaluated result." + (let ((repl-channel (node-open-rrepl node))) + (rrepl-skip-to-prompt repl-channel) +- (call-with-values (lambda () (rrepl-eval repl-channel quoted-exp)) +- (lambda vals +- (and (node-stop-repl-server? node) ++ (dynamic-wind ++ (const #t) ++ (lambda () ++ (rrepl-eval repl-channel quoted-exp)) ++ (lambda () ++ (when (node-stop-repl-server? node) + (node-stop-server node)) +- (apply values vals))))) ++ ++ ;; Close REPL-CHANNEL right away to prevent finalization from ++ ;; happening in another thread at the wrong time (see ++ ;; <https://bugs.gnu.org/26976>.) ++ (close-port repl-channel))))) + + (define (node-eval-1 node quoted-exp) + "Evaluate QUOTED-EXP on the node and return the evaluated result. The diff --git a/gnu/packages/patches/libextractor-ffmpeg-3.patch b/gnu/packages/patches/libextractor-ffmpeg-3.patch deleted file mode 100644 index d0f83f624c..0000000000 --- a/gnu/packages/patches/libextractor-ffmpeg-3.patch +++ /dev/null @@ -1,360 +0,0 @@ -Fix build with ffmpeg-3, based on upstream revisions r35548 and r35549 by LRN -and r36975 by Christian Grothoff, and backported to libextractor-1.3 by -Mark H Weaver <mhw@netris.org> - ---- libextractor-1.3/src/plugins/thumbnailffmpeg_extractor.c.orig 2013-12-21 11:04:41.000000000 -0500 -+++ libextractor-1.3/src/plugins/thumbnailffmpeg_extractor.c 2016-04-04 23:38:46.429041081 -0400 -@@ -59,6 +59,12 @@ - #include <ffmpeg/swscale.h> - #endif - -+#ifdef PIX_FMT_RGB24 -+#define PIX_OUTPUT_FORMAT PIX_FMT_RGB24 -+#else -+#define PIX_OUTPUT_FORMAT AV_PIX_FMT_RGB24 -+#endif -+ - /** - * Set to 1 to enable debug output. - */ -@@ -153,7 +159,7 @@ - static size_t - create_thumbnail (int src_width, int src_height, - int src_stride[], -- enum PixelFormat src_pixfmt, -+ enum AVPixelFormat src_pixfmt, - const uint8_t * const src_data[], - int dst_width, int dst_height, - uint8_t **output_data, -@@ -189,7 +195,8 @@ - if (NULL == - (scaler_ctx = - sws_getContext (src_width, src_height, src_pixfmt, -- dst_width, dst_height, PIX_FMT_RGB24, -+ dst_width, dst_height, -+ PIX_OUTPUT_FORMAT, - SWS_BILINEAR, NULL, NULL, NULL))) - { - #if DEBUG -@@ -199,7 +206,12 @@ - return 0; - } - -- if (NULL == (dst_frame = avcodec_alloc_frame ())) -+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1) -+ dst_frame = av_frame_alloc (); -+#else -+ dst_frame = avcodec_alloc_frame(); -+#endif -+ if (NULL == dst_frame) - { - #if DEBUG - fprintf (stderr, -@@ -209,18 +221,24 @@ - return 0; - } - if (NULL == (dst_buffer = -- av_malloc (avpicture_get_size (PIX_FMT_RGB24, dst_width, dst_height)))) -+ av_malloc (avpicture_get_size (PIX_OUTPUT_FORMAT, -+ dst_width, dst_height)))) - { - #if DEBUG - fprintf (stderr, - "Failed to allocate the destination image buffer\n"); - #endif -- av_free (dst_frame); -+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1) -+ av_frame_free (&dst_frame); -+#else -+ avcodec_free_frame (&dst_frame); -+#endif - sws_freeContext (scaler_ctx); - return 0; - } - avpicture_fill ((AVPicture *) dst_frame, dst_buffer, -- PIX_FMT_RGB24, dst_width, dst_height); -+ PIX_OUTPUT_FORMAT, -+ dst_width, dst_height); - sws_scale (scaler_ctx, - src_data, - src_stride, -@@ -236,7 +254,11 @@ - "Failed to allocate the encoder output buffer\n"); - #endif - av_free (dst_buffer); -- av_free (dst_frame); -+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1) -+ av_frame_free (&dst_frame); -+#else -+ avcodec_free_frame (&dst_frame); -+#endif - sws_freeContext (scaler_ctx); - return 0; - } -@@ -249,13 +271,17 @@ - #endif - av_free (encoder_output_buffer); - av_free (dst_buffer); -- av_free (dst_frame); -+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1) -+ av_frame_free (&dst_frame); -+#else -+ avcodec_free_frame (&dst_frame); -+#endif - sws_freeContext (scaler_ctx); - return 0; - } - encoder_codec_ctx->width = dst_width; - encoder_codec_ctx->height = dst_height; -- encoder_codec_ctx->pix_fmt = PIX_FMT_RGB24; -+ encoder_codec_ctx->pix_fmt = PIX_OUTPUT_FORMAT; - opts = NULL; - if (avcodec_open2 (encoder_codec_ctx, encoder_codec, &opts) < 0) - { -@@ -263,10 +289,14 @@ - fprintf (stderr, - "Failed to open the encoder\n"); - #endif -- av_free (encoder_codec_ctx); -+ avcodec_free_context (&encoder_codec_ctx); - av_free (encoder_output_buffer); - av_free (dst_buffer); -- av_free (dst_frame); -+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1) -+ av_frame_free (&dst_frame); -+#else -+ avcodec_free_frame (&dst_frame); -+#endif - sws_freeContext (scaler_ctx); - return 0; - } -@@ -295,9 +325,13 @@ - cleanup: - av_dict_free (&opts); - avcodec_close (encoder_codec_ctx); -- av_free (encoder_codec_ctx); -+ avcodec_free_context (&encoder_codec_ctx); - av_free (dst_buffer); -- av_free (dst_frame); -+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1) -+ av_frame_free (&dst_frame); -+#else -+ avcodec_free_frame (&dst_frame); -+#endif - sws_freeContext (scaler_ctx); - *output_data = encoder_output_buffer; - -@@ -406,18 +440,23 @@ - fprintf (stderr, - "Failed to open image codec\n"); - #endif -- av_free (codec_ctx); -+ avcodec_free_context (&codec_ctx); - return; - } - av_dict_free (&opts); -- if (NULL == (frame = avcodec_alloc_frame ())) -+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1) -+ frame = av_frame_alloc (); -+#else -+ frame = avcodec_alloc_frame(); -+#endif -+ if (NULL == frame) - { - #if DEBUG - fprintf (stderr, - "Failed to allocate frame\n"); - #endif - avcodec_close (codec_ctx); -- av_free (codec_ctx); -+ avcodec_free_context (&codec_ctx); - return; - } - -@@ -441,9 +480,13 @@ - fprintf (stderr, - "Failed to decode a complete frame\n"); - #endif -- av_free (frame); -+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1) -+ av_frame_free (&frame); -+#else -+ avcodec_free_frame (&frame); -+#endif - avcodec_close (codec_ctx); -- av_free (codec_ctx); -+ avcodec_free_context (&codec_ctx); - return; - } - calculate_thumbnail_dimensions (codec_ctx->width, codec_ctx->height, -@@ -467,9 +510,13 @@ - err); - av_free (encoded_thumbnail); - } -- av_free (frame); -+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1) -+ av_frame_free (&frame); -+#else -+ avcodec_free_frame (&frame); -+#endif - avcodec_close (codec_ctx); -- av_free (codec_ctx); -+ avcodec_free_context (&codec_ctx); - } - - -@@ -563,7 +610,12 @@ - return; - } - -- if (NULL == (frame = avcodec_alloc_frame ())) -+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1) -+ frame = av_frame_alloc (); -+#else -+ frame = avcodec_alloc_frame(); -+#endif -+ if (NULL == frame) - { - #if DEBUG - fprintf (stderr, -@@ -616,7 +668,11 @@ - fprintf (stderr, - "Failed to decode a complete frame\n"); - #endif -- av_free (frame); -+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1) -+ av_frame_free (&frame); -+#else -+ avcodec_free_frame (&frame); -+#endif - avcodec_close (codec_ctx); - avformat_close_input (&format_ctx); - av_free (io_ctx); -@@ -643,7 +699,11 @@ - err); - av_free (encoded_thumbnail); - } -- av_free (frame); -+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1) -+ av_frame_free (&frame); -+#else -+ avcodec_free_frame (&frame); -+#endif - avcodec_close (codec_ctx); - avformat_close_input (&format_ctx); - av_free (io_ctx); ---- libextractor-1.3/src/plugins/previewopus_extractor.c.orig 2013-12-22 17:44:18.000000000 -0500 -+++ libextractor-1.3/src/plugins/previewopus_extractor.c 2016-04-04 23:39:41.377720710 -0400 -@@ -296,8 +296,13 @@ - /** Initialize one audio frame for reading from the input file */ - static int init_input_frame(AVFrame **frame) - { -- if (!(*frame = avcodec_alloc_frame())) { -- #if DEBUG -+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1) -+ *frame = av_frame_alloc (); -+#else -+ *frame = avcodec_alloc_frame(); -+#endif -+ if (NULL == *frame) { -+#if DEBUG - fprintf(stderr, "Could not allocate input frame\n"); - #endif - return AVERROR(ENOMEM); -@@ -655,7 +660,11 @@ - av_freep(&converted_input_samples[0]); - free(converted_input_samples); - } -+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1) -+ av_frame_free (&input_frame); -+#else - avcodec_free_frame(&input_frame); -+#endif - - return ret; - } -@@ -671,10 +680,15 @@ - int error; - - /** Create a new frame to store the audio samples. */ -- if (!(*frame = avcodec_alloc_frame())) { -- #if DEBUG -+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1) -+ *frame = av_frame_alloc (); -+#else -+ *frame = avcodec_alloc_frame(); -+#endif -+ if (NULL == *frame) { -+#if DEBUG - fprintf(stderr, "Could not allocate output frame\n"); -- #endif -+#endif - return AVERROR_EXIT; - } - -@@ -699,10 +713,14 @@ - * sure that the audio frame can hold as many samples as specified. - */ - if ((error = av_frame_get_buffer(*frame, 0)) < 0) { -- #if DEBUG -+#if DEBUG - fprintf(stderr, "Could allocate output frame samples (error '%s')\n", get_error_text(error)); -- #endif -+#endif -+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1) -+ av_frame_free (frame); -+#else - avcodec_free_frame(frame); -+#endif - return error; - } - -@@ -780,20 +798,32 @@ - * The samples are stored in the frame temporarily. - */ - if (av_audio_fifo_read(fifo, (void **)output_frame->data, frame_size) < frame_size) { -- #if DEBUG -+#if DEBUG - fprintf(stderr, "Could not read data from FIFO\n"); -- #endif -+#endif -+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1) -+ av_frame_free (&output_frame); -+#else - avcodec_free_frame(&output_frame); -+#endif - return AVERROR_EXIT; - } - - /** Encode one frame worth of audio samples. */ - if (encode_audio_frame(output_frame, output_format_context, - output_codec_context, &data_written)) { -+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1) -+ av_frame_free (&output_frame); -+#else - avcodec_free_frame(&output_frame); -+#endif - return AVERROR_EXIT; - } -+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1) -+ av_frame_free (&output_frame); -+#else - avcodec_free_frame(&output_frame); -+#endif - return 0; - } - /** Write the trailer of the output file container. */ -@@ -907,7 +937,12 @@ - return; - } - -- if (NULL == (frame = avcodec_alloc_frame ())) -+#if LIBAVCODEC_VERSION_INT >= AV_VERSION_INT(55,28,1) -+ frame = av_frame_alloc (); -+#else -+ frame = avcodec_alloc_frame(); -+#endif -+ if (NULL == frame) - { - #if DEBUG - fprintf (stderr, diff --git a/gnu/packages/patches/libmwaw-CVE-2017-9433.patch b/gnu/packages/patches/libmwaw-CVE-2017-9433.patch new file mode 100644 index 0000000000..502a11d2a8 --- /dev/null +++ b/gnu/packages/patches/libmwaw-CVE-2017-9433.patch @@ -0,0 +1,33 @@ +Fix CVE-2017-9433: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-9433 + +Patch copied from upstream source repository: + +https://sourceforge.net/p/libmwaw/libmwaw/ci/68b3b74569881248bfb6cbb4266177cc253b292f + +From 68b3b74569881248bfb6cbb4266177cc253b292f Mon Sep 17 00:00:00 2001 +From: David Tardon <dtardon@redhat.com> +Date: Sat, 8 Apr 2017 14:03:29 +0200 +Subject: [PATCH] ofz#1037 resize vector correctly + +--- + src/lib/MsWrd1Parser.cxx | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/src/lib/MsWrd1Parser.cxx b/src/lib/MsWrd1Parser.cxx +index 63547e6..3626064 100644 +--- a/src/lib/MsWrd1Parser.cxx ++++ b/src/lib/MsWrd1Parser.cxx +@@ -902,7 +902,7 @@ bool MsWrd1Parser::readFootnoteCorrespondance(MWAWVec2i limits) + int id = fIt++->second; + fPos[1] = fIt==footnoteMap.end() ? m_state->m_eot : fIt->first; + if (id >= int(m_state->m_footnotesList.size())) +- m_state->m_footnotesList.resize(size_t(id),MWAWVec2l(0,0)); ++ m_state->m_footnotesList.resize(size_t(id)+1,MWAWVec2l(0,0)); + m_state->m_footnotesList[size_t(id)]=fPos; + } + ascii().addDelimiter(input->tell(),'|'); +-- +2.13.1 + diff --git a/gnu/packages/patches/nss-disable-long-b64-tests.patch b/gnu/packages/patches/nss-disable-long-b64-tests.patch deleted file mode 100644 index 612d94128d..0000000000 --- a/gnu/packages/patches/nss-disable-long-b64-tests.patch +++ /dev/null @@ -1,34 +0,0 @@ -Disable long b64 tests, which consistently fail on armhf. -This is based on an excerpt of the following upstream patch: - - https://hg.mozilla.org/projects/nss/rev/00b2cc2b33c7 - -(we exclude the part of the upstream patch that reverts -an earlier failed attempt, and adapt the file names) - -diff --git a/gtests/util_gtest/util_b64_unittest.cc b/gtests/util_gtest/util_b64_unittest.cc ---- a/nss/gtests/util_gtest/util_b64_unittest.cc -+++ b/nss/gtests/util_gtest/util_b64_unittest.cc -@@ -63,17 +63,19 @@ TEST_F(B64EncodeDecodeTest, EncDecTest) - - TEST_F(B64EncodeDecodeTest, FakeDecTest) { EXPECT_TRUE(TestFakeDecode(100)); } - - TEST_F(B64EncodeDecodeTest, FakeEncDecTest) { - EXPECT_TRUE(TestFakeEncode(100)); - } - - // These takes a while ... --TEST_F(B64EncodeDecodeTest, LongFakeDecTest1) { -+TEST_F(B64EncodeDecodeTest, DISABLED_LongFakeDecTest1) { - EXPECT_TRUE(TestFakeDecode(0x66666666)); - } --TEST_F(B64EncodeDecodeTest, LongFakeEncDecTest1) { TestFakeEncode(0x3fffffff); } --TEST_F(B64EncodeDecodeTest, LongFakeEncDecTest2) { -+TEST_F(B64EncodeDecodeTest, DISABLED_LongFakeEncDecTest1) { -+ TestFakeEncode(0x3fffffff); -+} -+TEST_F(B64EncodeDecodeTest, DISABLED_LongFakeEncDecTest2) { - EXPECT_FALSE(TestFakeEncode(0x40000000)); - } - - } // namespace nss_test diff --git a/gnu/packages/patches/nss-increase-test-timeout.patch b/gnu/packages/patches/nss-increase-test-timeout.patch index 1e24940322..55117c02e9 100644 --- a/gnu/packages/patches/nss-increase-test-timeout.patch +++ b/gnu/packages/patches/nss-increase-test-timeout.patch @@ -1,4 +1,4 @@ -We've seen some tests take more than 20s to complete on a busy armhf +We've seen some tests take up to 60s to complete on a busy armhf machine. Even a busy x86_64 machine can use more than 5s on some tests. Increase timeouts to increase chances of a successful build. @@ -10,7 +10,7 @@ Increase timeouts to increase chances of a successful build. ASSERT_TRUE_WAIT((client_->state() != TlsAgent::STATE_CONNECTING) && (server_->state() != TlsAgent::STATE_CONNECTING), - 5000); -+ 25000); ++ 300000); } void TlsConnectTestBase::EnableExtendedMasterSecret() { @@ -19,7 +19,7 @@ Increase timeouts to increase chances of a successful build. failing_agent = client_; } - ASSERT_TRUE_WAIT(failing_agent->state() == TlsAgent::STATE_ERROR, 5000); -+ ASSERT_TRUE_WAIT(failing_agent->state() == TlsAgent::STATE_ERROR, 25000); ++ ASSERT_TRUE_WAIT(failing_agent->state() == TlsAgent::STATE_ERROR, 300000); } void TlsConnectTestBase::ConfigureVersion(uint16_t version) { diff --git a/gnu/packages/patches/osip-CVE-2017-7853.patch b/gnu/packages/patches/osip-CVE-2017-7853.patch new file mode 100644 index 0000000000..33d95cdb0e --- /dev/null +++ b/gnu/packages/patches/osip-CVE-2017-7853.patch @@ -0,0 +1,40 @@ +Fix CVE-2017-7853: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-7853 +https://savannah.gnu.org/support/index.php?109265 + +Patch copied from upstream source repository: + +https://git.savannah.gnu.org/cgit/osip.git/commit/?id=1ae06daf3b2375c34af23083394a6f010be24a45 + +From 1ae06daf3b2375c34af23083394a6f010be24a45 Mon Sep 17 00:00:00 2001 +From: Aymeric Moizard <amoizard@gmail.com> +Date: Tue, 21 Feb 2017 17:16:26 +0100 +Subject: [PATCH] * fix bug report: sr #109265: SIP message body length + underflow in libosip2-4.1.0 https://savannah.gnu.org/support/?109265 + also applicable to current latest version + +--- + src/osipparser2/osip_message_parse.c | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/src/osipparser2/osip_message_parse.c b/src/osipparser2/osip_message_parse.c +index 1628c60..aa35446 100644 +--- a/src/osipparser2/osip_message_parse.c ++++ b/src/osipparser2/osip_message_parse.c +@@ -784,6 +784,12 @@ msg_osip_body_parse (osip_message_t * sip, const char *start_of_buf, const char + if ('\n' == start_of_body[0] || '\r' == start_of_body[0]) + start_of_body++; + ++ /* if message body is empty or contains a single CR/LF */ ++ if (end_of_body <= start_of_body) { ++ osip_free (sep_boundary); ++ return OSIP_SYNTAXERROR; ++ } ++ + body_len = end_of_body - start_of_body; + + /* Skip CR before end boundary. */ +-- +2.13.1 + diff --git a/gnu/packages/patches/zziplib-CVE-2017-5974.patch b/gnu/packages/patches/zziplib-CVE-2017-5974.patch new file mode 100644 index 0000000000..9ae02103e7 --- /dev/null +++ b/gnu/packages/patches/zziplib-CVE-2017-5974.patch @@ -0,0 +1,28 @@ +Fix CVE-2017-5974: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5974 + +Patch copied from Debian. + +Index: zziplib-0.13.62/zzip/memdisk.c +=================================================================== +--- zziplib-0.13.62.orig/zzip/memdisk.c ++++ zziplib-0.13.62/zzip/memdisk.c +@@ -216,12 +216,12 @@ zzip_mem_entry_new(ZZIP_DISK * disk, ZZI + /* override sizes/offsets with zip64 values for largefile support */ + zzip_extra_zip64 *block = (zzip_extra_zip64 *) + zzip_mem_entry_extra_block(item, ZZIP_EXTRA_zip64); +- if (block) ++ if (block && ZZIP_GET16(block->z_datasize) >= (8 + 8 + 8 + 4)) + { +- item->zz_usize = __zzip_get64(block->z_usize); +- item->zz_csize = __zzip_get64(block->z_csize); +- item->zz_offset = __zzip_get64(block->z_offset); +- item->zz_diskstart = __zzip_get32(block->z_diskstart); ++ item->zz_usize = ZZIP_GET64(block->z_usize); ++ item->zz_csize = ZZIP_GET64(block->z_csize); ++ item->zz_offset = ZZIP_GET64(block->z_offset); ++ item->zz_diskstart = ZZIP_GET32(block->z_diskstart); + } + } + /* NOTE: diff --git a/gnu/packages/patches/zziplib-CVE-2017-5975.patch b/gnu/packages/patches/zziplib-CVE-2017-5975.patch new file mode 100644 index 0000000000..fad174b056 --- /dev/null +++ b/gnu/packages/patches/zziplib-CVE-2017-5975.patch @@ -0,0 +1,32 @@ +Fix CVE-2017-5975: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5975 + +Patch copied from Debian. + +Index: zziplib-0.13.62/zzip/memdisk.c +=================================================================== +--- zziplib-0.13.62.orig/zzip/memdisk.c ++++ zziplib-0.13.62/zzip/memdisk.c +@@ -173,6 +173,8 @@ zzip_mem_entry_new(ZZIP_DISK * disk, ZZI + return 0; /* errno=ENOMEM; */ + ___ struct zzip_file_header *header = + zzip_disk_entry_to_file_header(disk, entry); ++ if (!header) ++ { free(item); return 0; } + /* there is a number of duplicated information in the file header + * or the disk entry block. Theoretically some part may be missing + * that exists in the other, ... but we will prefer the disk entry. +Index: zziplib-0.13.62/zzip/mmapped.c +=================================================================== +--- zziplib-0.13.62.orig/zzip/mmapped.c ++++ zziplib-0.13.62/zzip/mmapped.c +@@ -289,6 +289,8 @@ zzip_disk_entry_to_file_header(ZZIP_DISK + (disk->buffer + zzip_disk_entry_fileoffset(entry)); + if (disk->buffer > file_header || file_header >= disk->endbuf) + return 0; ++ if (ZZIP_GET32(file_header) != ZZIP_FILE_HEADER_MAGIC) ++ return 0; + return (struct zzip_file_header *) file_header; + } + diff --git a/gnu/packages/patches/zziplib-CVE-2017-5976.patch b/gnu/packages/patches/zziplib-CVE-2017-5976.patch new file mode 100644 index 0000000000..17fc30e302 --- /dev/null +++ b/gnu/packages/patches/zziplib-CVE-2017-5976.patch @@ -0,0 +1,61 @@ +Fix CVE-2017-5976: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5976 + +Patch copied from Debian. + +Index: zziplib-0.13.62/zzip/memdisk.c +=================================================================== +--- zziplib-0.13.62.orig/zzip/memdisk.c ++++ zziplib-0.13.62/zzip/memdisk.c +@@ -201,6 +201,7 @@ zzip_mem_entry_new(ZZIP_DISK * disk, ZZI + { + void *mem = malloc(ext1 + 2); + item->zz_ext[1] = mem; ++ item->zz_extlen[1] = ext1 + 2; + memcpy(mem, ptr1, ext1); + ((char *) (mem))[ext1 + 0] = 0; + ((char *) (mem))[ext1 + 1] = 0; +@@ -209,6 +210,7 @@ zzip_mem_entry_new(ZZIP_DISK * disk, ZZI + { + void *mem = malloc(ext2 + 2); + item->zz_ext[2] = mem; ++ item->zz_extlen[2] = ext2 + 2; + memcpy(mem, ptr2, ext2); + ((char *) (mem))[ext2 + 0] = 0; + ((char *) (mem))[ext2 + 1] = 0; +@@ -245,8 +247,10 @@ zzip_mem_entry_extra_block(ZZIP_MEM_ENTR + while (1) + { + ZZIP_EXTRA_BLOCK *ext = entry->zz_ext[i]; +- if (ext) ++ if (ext && (entry->zz_extlen[i] >= zzip_extra_block_headerlength)) + { ++ char *endblock = (char *)ext + entry->zz_extlen[i]; ++ + while (*(short *) (ext->z_datatype)) + { + if (datatype == zzip_extra_block_get_datatype(ext)) +@@ -257,6 +261,10 @@ zzip_mem_entry_extra_block(ZZIP_MEM_ENTR + e += zzip_extra_block_headerlength; + e += zzip_extra_block_get_datasize(ext); + ext = (void *) e; ++ if (e >= endblock) ++ { ++ break; ++ } + ____; + } + } +Index: zziplib-0.13.62/zzip/memdisk.h +=================================================================== +--- zziplib-0.13.62.orig/zzip/memdisk.h ++++ zziplib-0.13.62/zzip/memdisk.h +@@ -66,6 +66,7 @@ struct _zzip_mem_entry { + int zz_filetype; /* (from "z_filetype") */ + char* zz_comment; /* zero-terminated (from "comment") */ + ZZIP_EXTRA_BLOCK* zz_ext[3]; /* terminated by null in z_datatype */ ++ int zz_extlen[3]; /* length of zz_ext[i] in bytes */ + }; /* the extra blocks are NOT converted */ + + #define _zzip_mem_disk_findfirst(_d_) ((_d_)->list) diff --git a/gnu/packages/patches/zziplib-CVE-2017-5978.patch b/gnu/packages/patches/zziplib-CVE-2017-5978.patch new file mode 100644 index 0000000000..452b14f804 --- /dev/null +++ b/gnu/packages/patches/zziplib-CVE-2017-5978.patch @@ -0,0 +1,37 @@ +Fix CVE-2017-5978: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5978 + +Patch copied from Debian. + +Index: zziplib-0.13.62/zzip/memdisk.c +=================================================================== +--- zziplib-0.13.62.orig/zzip/memdisk.c ++++ zziplib-0.13.62/zzip/memdisk.c +@@ -180,7 +180,7 @@ zzip_mem_entry_new(ZZIP_DISK * disk, ZZI + * that exists in the other, ... but we will prefer the disk entry. + */ + item->zz_comment = zzip_disk_entry_strdup_comment(disk, entry); +- item->zz_name = zzip_disk_entry_strdup_name(disk, entry); ++ item->zz_name = zzip_disk_entry_strdup_name(disk, entry) ?: strdup(""); + item->zz_data = zzip_file_header_to_data(header); + item->zz_flags = zzip_disk_entry_get_flags(entry); + item->zz_compr = zzip_disk_entry_get_compr(entry); +@@ -197,7 +197,7 @@ zzip_mem_entry_new(ZZIP_DISK * disk, ZZI + int /* */ ext2 = zzip_file_header_get_extras(header); + char *_zzip_restrict ptr2 = zzip_file_header_to_extras(header); + +- if (ext1) ++ if (ext1 && ((ptr1 + ext1) < disk->endbuf)) + { + void *mem = malloc(ext1 + 2); + item->zz_ext[1] = mem; +@@ -206,7 +206,7 @@ zzip_mem_entry_new(ZZIP_DISK * disk, ZZI + ((char *) (mem))[ext1 + 0] = 0; + ((char *) (mem))[ext1 + 1] = 0; + } +- if (ext2) ++ if (ext2 && ((ptr2 + ext2) < disk->endbuf)) + { + void *mem = malloc(ext2 + 2); + item->zz_ext[2] = mem; diff --git a/gnu/packages/patches/zziplib-CVE-2017-5979.patch b/gnu/packages/patches/zziplib-CVE-2017-5979.patch new file mode 100644 index 0000000000..b38f50b172 --- /dev/null +++ b/gnu/packages/patches/zziplib-CVE-2017-5979.patch @@ -0,0 +1,19 @@ +Fix CVE-2017-5979: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5979 + +Patch copied from Debian. + +Index: zziplib-0.13.62/zzip/fseeko.c +=================================================================== +--- zziplib-0.13.62.orig/zzip/fseeko.c ++++ zziplib-0.13.62/zzip/fseeko.c +@@ -255,7 +255,7 @@ zzip_entry_findfirst(FILE * disk) + return 0; + /* we read out chunks of 8 KiB in the hope to match disk granularity */ + ___ zzip_off_t pagesize = PAGESIZE; /* getpagesize() */ +- ___ ZZIP_ENTRY *entry = malloc(sizeof(*entry)); ++ ___ ZZIP_ENTRY *entry = calloc(1, sizeof(*entry)); + if (! entry) + return 0; + ___ unsigned char *buffer = malloc(pagesize); diff --git a/gnu/packages/patches/zziplib-CVE-2017-5981.patch b/gnu/packages/patches/zziplib-CVE-2017-5981.patch new file mode 100644 index 0000000000..ed82cb3b91 --- /dev/null +++ b/gnu/packages/patches/zziplib-CVE-2017-5981.patch @@ -0,0 +1,19 @@ +Fix CVE-2017-5981: + +https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2017-5981 + +Patch copied from Debian. +Index: zziplib-0.13.62/zzip/fseeko.c +=================================================================== +--- zziplib-0.13.62.orig/zzip/fseeko.c ++++ zziplib-0.13.62/zzip/fseeko.c +@@ -311,7 +311,8 @@ zzip_entry_findfirst(FILE * disk) + } else + continue; + +- assert(0 <= root && root < mapsize); ++ if (root < 0 || root >= mapsize) ++ goto error; + if (fseeko(disk, root, SEEK_SET) == -1) + goto error; + if (fread(disk_(entry), 1, sizeof(*disk_(entry)), disk) |