From f9247ff3a5a772c8a314a4c9444e449c5b113053 Mon Sep 17 00:00:00 2001 From: Matthew Flatt Date: Mon, 27 Feb 2012 08:34:26 -0500 Subject: [PATCH] fix zip/gzip bug Closes PR 12605 --- collects/mzlib/deflate.rkt | 5 +++-- collects/tests/file/deflate-me.dat | Bin 0 -> 65396 bytes collects/tests/file/gzip.rkt | 10 +++++++++- 3 files changed, 12 insertions(+), 3 deletions(-) create mode 100644 collects/tests/file/deflate-me.dat diff --git a/collects/mzlib/deflate.rkt b/collects/mzlib/deflate.rkt index c8d443b504..37b615c4e4 100644 --- a/collects/mzlib/deflate.rkt +++ b/collects/mzlib/deflate.rkt @@ -469,7 +469,8 @@ (longest_match-loop))) (define (*++scan) (set! scanpos (add1 scanpos)) - (bytes-ref window-vec scanpos)) + (and (scanpos . < . window_size) ; the original C code can read past the end of the buffer + (bytes-ref window-vec scanpos))) (define (*++match) (set! matchpos (add1 matchpos)) (bytes-ref window-vec matchpos)) @@ -479,7 +480,7 @@ (eq? (*++scan) (*++match)) (eq? (*++scan) (*++match)) (eq? (*++scan) (*++match)) (eq? (*++scan) (*++match)) (eq? (*++scan) (*++match)) (eq? (*++scan) (*++match)) - (< scanpos strendpos)) + (< scanpos strendpos)) (match-eight))) (define (longest_match-loop) diff --git a/collects/tests/file/deflate-me.dat b/collects/tests/file/deflate-me.dat new file mode 100644 index 0000000000000000000000000000000000000000..8d7e374903131f07211ef1d92e18ede982ff4670 GIT binary patch literal 65396 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

2NxIBdQhqV?_OVm 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 TKO!C&fS*A{0JIF_Y literal 0 HcmV?d00001 diff --git a/collects/tests/file/gzip.rkt b/collects/tests/file/gzip.rkt index 3348d2eba5..49047fe043 100644 --- a/collects/tests/file/gzip.rkt +++ b/collects/tests/file/gzip.rkt @@ -31,7 +31,15 @@ (define (rand-bytes) (list->bytes (for/list ([j (in-range (random 1000))]) (random 256)))) (test-big-file) - (for ([i (in-range 100)]) (id* (rand-bytes)))) + (for ([i (in-range 100)]) (id* (rand-bytes))) + (regression-test)) + +(define (regression-test) + ;; check for an out-of-range buffer access: + (call-with-input-file* + (collection-file-path "deflate-me.dat" "tests/file") + (lambda (in) + (gzip-through-ports in (open-output-bytes) "defalte-me.dat" (current-seconds))))) (provide tests) (define (tests) (test do (run-tests)))