summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app-arch/gzip/files/gzip-1.3.5-alpha.patch')
-rw-r--r--app-arch/gzip/files/gzip-1.3.5-alpha.patch28
1 files changed, 28 insertions, 0 deletions
diff --git a/app-arch/gzip/files/gzip-1.3.5-alpha.patch b/app-arch/gzip/files/gzip-1.3.5-alpha.patch
new file mode 100644
index 000000000000..c31cd3209595
--- /dev/null
+++ b/app-arch/gzip/files/gzip-1.3.5-alpha.patch
@@ -0,0 +1,28 @@
+Taken from Debian.
+
+http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=187417
+http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=184057
+http://bugs.gentoo.org/92232
+
+--- gzip-1.3.5.orig/deflate.c
++++ gzip-1.3.5/deflate.c
+@@ -643,7 +643,8 @@
+ /* Find the longest match, discarding those <= prev_length.
+ * At this point we have always match_length < MIN_MATCH
+ */
+- if (hash_head != NIL && strstart - hash_head <= MAX_DIST) {
++ if (hash_head != NIL && strstart - hash_head <= MAX_DIST &&
++ strstart <= window_size - MIN_LOOKAHEAD) {
+ /* To simplify the code, we prevent matches with the string
+ * of window index 0 (in particular we have to avoid a match
+ * of the string with itself at the start of the input file).
+@@ -737,7 +738,8 @@
+ match_length = MIN_MATCH-1;
+
+ if (hash_head != NIL && prev_length < max_lazy_match &&
+- strstart - hash_head <= MAX_DIST) {
++ strstart - hash_head <= MAX_DIST &&
++ strstart <= window_size - MIN_LOOKAHEAD) {
+ /* To simplify the code, we prevent matches with the string
+ * of window index 0 (in particular we have to avoid a match
+ * of the string with itself at the start of the input file).