diff options
Diffstat (limited to 'gnu/packages')
-rw-r--r-- | gnu/packages/gettext.scm | 5 | ||||
-rw-r--r-- | gnu/packages/patches/gettext-msgunfmt.patch | 58 |
2 files changed, 2 insertions, 61 deletions
diff --git a/gnu/packages/gettext.scm b/gnu/packages/gettext.scm index 9289946178..6be3093bd6 100644 --- a/gnu/packages/gettext.scm +++ b/gnu/packages/gettext.scm @@ -35,15 +35,14 @@ (define-public gnu-gettext (package (name "gettext") - (version "0.19.4") + (version "0.19.5") (source (origin (method url-fetch) (uri (string-append "mirror://gnu/gettext/gettext-" version ".tar.gz")) (sha256 (base32 - "0gvz86m4cs8bdf3mwmwsyx6lrq4ydfxgadrgd9jlx32z3bnz3jca")) - (patches (list (search-patch "gettext-msgunfmt.patch"))))) + "0fppvj4l9maa9q1swvhnv96hsqxx90vcjbdyjhqpir3ll55q2n0j")))) (build-system gnu-build-system) (inputs `(("expat" ,expat))) diff --git a/gnu/packages/patches/gettext-msgunfmt.patch b/gnu/packages/patches/gettext-msgunfmt.patch deleted file mode 100644 index 4a50abddc2..0000000000 --- a/gnu/packages/patches/gettext-msgunfmt.patch +++ /dev/null @@ -1,58 +0,0 @@ -From <http://git.savannah.gnu.org/cgit/gettext.git/patch/?id=5d3eeaa0d3b7f4f6932bd29d859925a940b69459>. - -2015-03-11 Daiki Ueno <ueno@gnu.org> - - msgunfmt: Check allocated size for static segment - Reported by Max Lin in: - http://lists.gnu.org/archive/html/bug-gettext/2015-03/msg00005.html - * read-mo.c (get_sysdep_string): Check if the embedded segment - size is valid, before adding it to the string length. - -diff --git a/gettext-tools/src/read-mo.c b/gettext-tools/src/read-mo.c -index b97bbad..1c024a8 100644 ---- a/gettext-tools/src/read-mo.c -+++ b/gettext-tools/src/read-mo.c -@@ -149,6 +149,7 @@ get_sysdep_string (const struct binary_mo_file *bfp, size_t offset, - nls_uint32 s_offset; - - /* Compute the length. */ -+ s_offset = get_uint32 (bfp, offset); - length = 0; - for (i = 4; ; i += 8) - { -@@ -158,9 +159,14 @@ get_sysdep_string (const struct binary_mo_file *bfp, size_t offset, - nls_uint32 ss_length; - nls_uint32 ss_offset; - size_t ss_end; -+ size_t s_end; - size_t n; - -+ s_end = xsum (s_offset, segsize); -+ if (size_overflow_p (s_end) || s_end > bfp->size) -+ error (EXIT_FAILURE, 0, _("file \"%s\" is truncated"), bfp->filename); - length += segsize; -+ s_offset += segsize; - - if (sysdepref == SEGMENTS_END) - break; -@@ -175,7 +181,7 @@ get_sysdep_string (const struct binary_mo_file *bfp, size_t offset, - ss_end = xsum (ss_offset, ss_length); - if (size_overflow_p (ss_end) || ss_end > bfp->size) - error (EXIT_FAILURE, 0, _("file \"%s\" is truncated"), bfp->filename); -- if (!(ss_length > 0 && bfp->data[ss_offset + ss_length - 1] == '\0')) -+ if (!(ss_length > 0 && bfp->data[ss_end - 1] == '\0')) - { - char location[30]; - sprintf (location, "sysdep_segment[%u]", (unsigned int) sysdepref); -@@ -198,11 +204,8 @@ get_sysdep_string (const struct binary_mo_file *bfp, size_t offset, - nls_uint32 sysdep_segment_offset; - nls_uint32 ss_length; - nls_uint32 ss_offset; -- size_t s_end = xsum (s_offset, segsize); - size_t n; - -- if (size_overflow_p (s_end) || s_end > bfp->size) -- error (EXIT_FAILURE, 0, _("file \"%s\" is truncated"), bfp->filename); - memcpy (p, bfp->data + s_offset, segsize); - p += segsize; - s_offset += segsize; |