Your message dated Sun, 12 Jun 2016 23:23:19 +0000
with message-id <[email protected]>
and subject line Bug#825724: fixed in chicken 4.10.0-1
has caused the Debian Bug report #825724,
regarding chicken: diff for NMU version 4.9.0.1-1.1
to be marked as done.

This means that you claim that the problem has been dealt with.
If this is not the case it is now your responsibility to reopen the
Bug report if necessary, and/or fix the problem forthwith.

(NB: If you are a system administrator and have no idea what this
message is talking about, this may indicate a serious mail system
misconfiguration somewhere. Please contact [email protected]
immediately.)


-- 
825724: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=825724
Debian Bug Tracking System
Contact [email protected] with problems
--- Begin Message ---
Package: chicken
Version: 4.9.0.1-1
Severity: normal
Tags: patch pending

Dear maintainer,

I've prepared an NMU for chicken (versioned as 4.9.0.1-1.1). The diff
is attached to this message.


Regards.
diff -Nru chicken-4.9.0.1/debian/changelog chicken-4.9.0.1/debian/changelog
--- chicken-4.9.0.1/debian/changelog    2014-11-23 19:28:44.000000000 +0100
+++ chicken-4.9.0.1/debian/changelog    2016-05-29 10:46:57.000000000 +0200
@@ -1,3 +1,12 @@
+chicken (4.9.0.1-1.1) UNRELEASED; urgency=medium
+
+  * Non-maintainer upload.
+  * CVE-2015-4556: cherry pick patch from upstream repository (Closes: #788833)
+  * CVE-2014-9651: cherry pick patch from upstream repository (Closes: #775346)
+  * Add chicken-bin to B-D to prevent FTBFS.
+
+ -- Tobias Frost <[email protected]>  Sat, 28 May 2016 23:17:57 +0200
+
 chicken (4.9.0.1-1) unstable; urgency=high
 
   * New upstream version;
diff -Nru chicken-4.9.0.1/debian/control chicken-4.9.0.1/debian/control
--- chicken-4.9.0.1/debian/control      2014-11-23 19:23:35.000000000 +0100
+++ chicken-4.9.0.1/debian/control      2016-05-29 10:37:54.000000000 +0200
@@ -3,7 +3,7 @@
 Section: interpreters
 Priority: optional
 Maintainer: Davide Puricelli (evo) <[email protected]>
-Build-Depends: debhelper (>> 5.0.0), texinfo, chrpath
+Build-Depends: debhelper (>> 5.0.0), texinfo, chrpath, chicken-bin
 Standards-Version: 3.8.4.0
 
 Package: chicken-bin
diff -Nru chicken-4.9.0.1/debian/patches/CVE-2014-9651.patch 
chicken-4.9.0.1/debian/patches/CVE-2014-9651.patch
--- chicken-4.9.0.1/debian/patches/CVE-2014-9651.patch  1970-01-01 
01:00:00.000000000 +0100
+++ chicken-4.9.0.1/debian/patches/CVE-2014-9651.patch  2016-05-28 
23:20:41.000000000 +0200
@@ -0,0 +1,73 @@
+From 230eed2745ea2b57de3c9073e8596892b1da2d8c Mon Sep 17 00:00:00 2001
+From: Moritz Heidkamp <address@hidden>
+Date: Sun, 14 Dec 2014 23:33:52 +0100
+Subject: [PATCH] Fix buffer overrun in substring-index[-ci]
+
+When passing a start index greater than 0, substring-index[-ci] would
+scan past the end of the subject string, leading to bogus results in
+case the substring is accidentally run into beyond the end of the
+subject. This patch fixes the issue and also adds a range check for the
+start index.
+---
+ data-structures.scm             | 22 ++++++++++++++--------
+ tests/data-structures-tests.scm | 11 ++++++++++-
+ 2 files changed, 24 insertions(+), 9 deletions(-)
+
+--- a/data-structures.scm
++++ b/data-structures.scm
+@@ -303,15 +303,21 @@
+   (define (traverse which where start test loc)
+     (##sys#check-string which loc)
+     (##sys#check-string where loc)
+-    (let ([wherelen (##sys#size where)]
+-        [whichlen (##sys#size which)] )
++    (let* ((wherelen (##sys#size where))
++         (whichlen (##sys#size which))
++         (end (fx- wherelen whichlen)))
+       (##sys#check-exact start loc)
+-      (let loop ([istart start] [iend whichlen])
+-      (cond [(fx> iend wherelen) #f]
+-            [(test istart whichlen) istart]
+-            [else 
+-             (loop (fx+ istart 1)
+-                   (fx+ iend 1) ) ] ) ) ) )
++      (if (and (fx>= start 0)
++             (fx> wherelen start))
++        (let loop ((istart start))
++          (cond ((fx> istart end) #f)
++                ((test istart whichlen) istart)
++                (else (loop (fx+ istart 1)))))
++        (##sys#error-hook (foreign-value "C_OUT_OF_RANGE_ERROR" int)
++                          loc
++                          start
++                          wherelen))))
++
+   (set! ##sys#substring-index 
+     (lambda (which where start)
+       (traverse 
+--- a/tests/data-structures-tests.scm
++++ b/tests/data-structures-tests.scm
+@@ -1,6 +1,6 @@
+ ;;;; data-structures-tests.scm
+ 
+-(use data-structures)
++(use data-structures lolevel)
+ 
+ (define-syntax assert-error
+   (syntax-rules ()
+@@ -54,6 +54,15 @@
+ (assert (string=? "x" (string-translate* "ab" '(("ab" . "x")))))
+ (assert (string=? "xy" (string-translate* "xyz" '(("z" . "")))))
+ 
++
++;; This used to fail because substring-index and co. used to search
++;; beyond the end of the subject string when a start index > 0 was
++;; provided. We use object-evict to ensure that the strings are placed
++;; in adjacent memory ranges so we can detect this error.
++(let* ((foo (object-evict (make-string 32 #\x)))
++       (bar (object-evict "y")))
++  (assert (not (substring-index "y" foo 30))))
++
+ ;; topological-sort
+ 
+ (assert (equal? '() (topological-sort '() eq?)))
diff -Nru chicken-4.9.0.1/debian/patches/CVE-2015-4556.patch 
chicken-4.9.0.1/debian/patches/CVE-2015-4556.patch
--- chicken-4.9.0.1/debian/patches/CVE-2015-4556.patch  1970-01-01 
01:00:00.000000000 +0100
+++ chicken-4.9.0.1/debian/patches/CVE-2015-4556.patch  2016-05-29 
11:00:13.000000000 +0200
@@ -0,0 +1,72 @@
+commit 8a460209d78ed532c0b92e32c21625c4952bde3c
+Author: Peter Bex <[email protected]>
+Date:   Sun Jun 14 19:52:26 2015 +0200
+
+    Fix potential buffer overrun error in string-translate*
+    
+    string-translate* would scan from every position in the target string
+    for each source string in the map, even if that would mean scanning
+    past the end.  The out-of-bounds read would be limited to the size of
+    the overlapping prefix in the trailing garbage beyond the string,
+    because memcmp will stop scanning as soon as there is a different
+    byte in either of the memory areas.
+    
+    This also adds a few basic tests for string-translate*
+    
+    Signed-off-by: Evan Hanson <[email protected]>
+
+--- a/data-structures.scm
++++ b/data-structures.scm
+@@ -504,7 +504,7 @@
+ (define (string-translate* str smap)
+   (##sys#check-string str 'string-translate*)
+   (##sys#check-list smap 'string-translate*)
+-  (let ([len (##sys#size str)])
++  (let ((len (##sys#size str)))
+     (define (collect i from total fs)
+       (if (fx>= i len)
+         (##sys#fragments->string
+@@ -513,15 +513,16 @@
+           (if (fx> i from) 
+               (cons (##sys#substring str from i) fs)
+               fs) ) )
+-        (let loop ([smap smap])
++        (let loop ((smap smap))
+           (if (null? smap) 
+               (collect (fx+ i 1) from (fx+ total 1) fs)
+-              (let* ([p (car smap)]
+-                     [sm (car p)]
+-                     [smlen (string-length sm)]
+-                     [st (cdr p)] )
+-                (if (##core#inline "C_substring_compare" str sm i 0 smlen)
+-                    (let ([i2 (fx+ i smlen)])
++              (let* ((p (car smap))
++                     (sm (car p))
++                     (smlen (string-length sm))
++                     (st (cdr p)) )
++                (if (and (fx<= (fx+ i smlen) len)
++                         (##core#inline "C_substring_compare" str sm i 0 
smlen))
++                    (let ((i2 (fx+ i smlen)))
+                       (when (fx> i from)
+                         (set! fs (cons (##sys#substring str from i) fs)) )
+                       (collect 
+--- a/tests/data-structures-tests.scm
++++ b/tests/data-structures-tests.scm
+@@ -43,6 +43,17 @@
+ (assert (< 0 (string-compare3-ci "foo\x00b" "foo\x00a")))
+ (assert (< 0 (string-compare3-ci "foo\x00b" "foo\x00A")))
+ 
++(assert (string=? "bde" (string-translate* "abcd"
++                                         '(("a" . "b")
++                                           ("b" . "")
++                                           ("c" . "d")
++                                           ("d" . "e")))))
++(assert (string=? "bc" (string-translate* "abc"
++                                        '(("ab" . "b")
++                                          ("bc" . "WRONG")))))
++(assert (string=? "x" (string-translate* "ab" '(("ab" . "x")))))
++(assert (string=? "xy" (string-translate* "xyz" '(("z" . "")))))
++
+ ;; topological-sort
+ 
+ (assert (equal? '() (topological-sort '() eq?)))
diff -Nru chicken-4.9.0.1/debian/patches/fix-manpages.patch 
chicken-4.9.0.1/debian/patches/fix-manpages.patch
--- chicken-4.9.0.1/debian/patches/fix-manpages.patch   2014-11-23 
19:23:35.000000000 +0100
+++ chicken-4.9.0.1/debian/patches/fix-manpages.patch   2016-05-28 
23:16:49.000000000 +0200
@@ -1,8 +1,6 @@
-Index: chicken-4.9.0/chicken-install.1
-===================================================================
---- chicken-4.9.0.orig/chicken-install.1
-+++ chicken-4.9.0/chicken-install.1
-@@ -42,7 +42,7 @@ installation paths if specified.
+--- a/chicken-install.1
++++ b/chicken-install.1
+@@ -42,7 +42,7 @@
  .B CHICKEN_REPOSITORY
  The path where extension libraries are installed. Defaults to the 
package-library
  path selected during configuration (usually
@@ -11,11 +9,9 @@
  )
  
  .SH DOCUMENTATION
-Index: chicken-4.9.0/chicken-status.1
-===================================================================
---- chicken-4.9.0.orig/chicken-status.1
-+++ chicken-4.9.0/chicken-status.1
-@@ -35,7 +35,7 @@ when configuring the system.
+--- a/chicken-status.1
++++ b/chicken-status.1
+@@ -35,7 +35,7 @@
  .B CHICKEN_REPOSITORY
  The path where extension libraries are installed. Defaults to the 
package-library
  path selected during configuration (usually
@@ -24,11 +20,9 @@
  )
  
  
-Index: chicken-4.9.0/chicken-uninstall.1
-===================================================================
---- chicken-4.9.0.orig/chicken-uninstall.1
-+++ chicken-4.9.0/chicken-uninstall.1
-@@ -41,7 +41,7 @@ installation paths if specified.
+--- a/chicken-uninstall.1
++++ b/chicken-uninstall.1
+@@ -41,7 +41,7 @@
  .B CHICKEN_REPOSITORY
  The path where extension libraries are installed. Defaults to the 
package-library
  path selected during configuration (usually
@@ -37,11 +31,9 @@
  )
  
  
-Index: chicken-4.9.0/chicken.1
-===================================================================
---- chicken-4.9.0.orig/chicken.1
-+++ chicken-4.9.0/chicken.1
-@@ -21,10 +21,6 @@ is a compiler and interpreter for the pr
+--- a/chicken.1
++++ b/chicken.1
+@@ -21,10 +21,6 @@
  supporting most of the features as described in the
  .I Revised^5 Report on
  .I the Algorithmic Language Scheme
@@ -52,10 +44,8 @@
  For a more convenient interface, see the manual page for csc(1).
  
  .SH OPTIONS
-Index: chicken-4.9.0/csi.1
-===================================================================
---- chicken-4.9.0.orig/csi.1
-+++ chicken-4.9.0/csi.1
+--- a/csi.1
++++ b/csi.1
 @@ -3,9 +3,7 @@
  
  .SH NAME
diff -Nru chicken-4.9.0.1/debian/patches/series 
chicken-4.9.0.1/debian/patches/series
--- chicken-4.9.0.1/debian/patches/series       2014-11-23 19:23:35.000000000 
+0100
+++ chicken-4.9.0.1/debian/patches/series       2016-05-29 10:44:14.000000000 
+0200
@@ -1 +1,3 @@
 fix-manpages.patch
+CVE-2015-4556.patch
+CVE-2014-9651.patch

--- End Message ---
--- Begin Message ---
Source: chicken
Source-Version: 4.10.0-1

We believe that the bug you reported is fixed in the latest version of
chicken, which is due to be installed in the Debian FTP archive.

A summary of the changes between this version and the previous one is
attached.

Thank you for reporting the bug, which will now be closed.  If you
have further comments please address them to [email protected],
and the maintainer will reopen the bug report if appropriate.

Debian distribution maintenance software
pp.
Davide Puricelli (evo) <[email protected]> (supplier of updated chicken package)

(This message was generated automatically at their request; if you
believe that there is a problem with it please contact the archive
administrators by mailing [email protected])


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256

Format: 1.8
Date: Sun, 12 Jun 2016 17:33:30 +0200
Source: chicken
Binary: chicken-bin libchicken7 libchicken-dev
Architecture: source amd64
Version: 4.10.0-1
Distribution: unstable
Urgency: high
Maintainer: Davide Puricelli (evo) <[email protected]>
Changed-By: Davide Puricelli (evo) <[email protected]>
Description:
 chicken-bin - Practical and portable Scheme system - compiler
 libchicken-dev - Practical and portable Scheme system - development
 libchicken7 - Practical and portable Scheme system - runtime
Closes: 775346 788833 825724
Changes:
 chicken (4.10.0-1) unstable; urgency=high
 .
   * New upstream version, fixing CVE-2014-9651 and CVE-2015-4556.
     closes: #775346, #788833.
   * ACK to Tobias Frost's NMU, thanks! closes: #825724.
Checksums-Sha1:
 043cecaac5e1e22a4ece770f861ea8362453aeab 1835 chicken_4.10.0-1.dsc
 bbb532abc6f7df306b4868218036c5188738d772 4020442 chicken_4.10.0.orig.tar.gz
 19a9deef4e5be1f5b92a99381c6dcc4f7b093a3b 6372 chicken_4.10.0-1.debian.tar.xz
 f65ea472990349753dfdf7c3a15e650b6fb6600c 2442428 
chicken-bin-dbgsym_4.10.0-1_amd64.deb
 3f185b512731b66a1086b9b1c63ffd082b76e7e5 1031360 chicken-bin_4.10.0-1_amd64.deb
 1b7f31032be2bee5c80e23762586e49c34816bc5 1046760 
libchicken-dev_4.10.0-1_amd64.deb
 fb681a5319427abffe731f1926f3db98700e50a0 3154652 
libchicken7-dbgsym_4.10.0-1_amd64.deb
 ea2237ec42a39c322effef93f02440233c588a1c 932460 libchicken7_4.10.0-1_amd64.deb
Checksums-Sha256:
 f2669d5f06a524c38bc76f376851cca28710a4c87c271fa305a417b42f60f779 1835 
chicken_4.10.0-1.dsc
 0e07f5abcd11961986950dbeaa5a40db415f8a1b65daff9c300e9b05b334899b 4020442 
chicken_4.10.0.orig.tar.gz
 3054d23999ae80c307a9ec710968cdb0b2f2b57a0ab0747eefe4486891d95ed2 6372 
chicken_4.10.0-1.debian.tar.xz
 b9037357c20caae35ebfef6f0792607dac04fb7c73c4f552d402499049e0fbe8 2442428 
chicken-bin-dbgsym_4.10.0-1_amd64.deb
 99d584ab67733a83d2eeba4de5646eb076cf9bdeca91aa0bc9f2bfc66249ed2d 1031360 
chicken-bin_4.10.0-1_amd64.deb
 96e9de88ed9565fd74a142fe8e664bbee64f75ab2259ff02fa57825bacde1470 1046760 
libchicken-dev_4.10.0-1_amd64.deb
 ae83de91fc7255d12a0f555309e296267e200c8b4a602cec544e8c759a50382f 3154652 
libchicken7-dbgsym_4.10.0-1_amd64.deb
 d35d9aa8b635c5dde2d4fae5a377265e30d9410c28289efa5503f6ebafd4cac6 932460 
libchicken7_4.10.0-1_amd64.deb
Files:
 ac76a18f89d2ab3ad9277a03c4978355 1835 interpreters optional 
chicken_4.10.0-1.dsc
 5585edb369eb2a49f1f92775419852e7 4020442 interpreters optional 
chicken_4.10.0.orig.tar.gz
 d65db476b4b89cf1be3529c0ed1dea01 6372 interpreters optional 
chicken_4.10.0-1.debian.tar.xz
 864323bed3e719a360f19a808e46fffd 2442428 debug extra 
chicken-bin-dbgsym_4.10.0-1_amd64.deb
 760418fcc30fe97b6e2e9e2c8bc48b54 1031360 lisp optional 
chicken-bin_4.10.0-1_amd64.deb
 0ca72b595742393a1a22c67c1aa0ac7b 1046760 libdevel optional 
libchicken-dev_4.10.0-1_amd64.deb
 e5b7fa0bdadc6251bbe89a6062aeac88 3154652 debug extra 
libchicken7-dbgsym_4.10.0-1_amd64.deb
 e8a7a1945d640b15c3a0d3029ee02e82 932460 libs optional 
libchicken7_4.10.0-1_amd64.deb

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iQIcBAEBCAAGBQJXXeeHAAoJEOZlB46OavE+2xQQAIzpvl7tM6RZyaL23quox12O
qhchaE3S/cIYPANpqFReu9lkc/8fSOd3I0gsYIGkY6sp0xFOw8f+EJc98ANt3y5u
rLg8zCUnA/UCnotEJ8Qiz/MccqZKCXWZcvbiuaDO8UV1+/vAUeAB8GE0mn5VYC26
064zn0+3o7Rn19X2W8BFRbNrnh/eUYefrHxhPc9yXwa1LSusmg0OnE9ALZO9acYR
nv7AwOYTmbmv+96Ffg85XGnWFzIWBZ+nGSPXUfcOS8Y3Hn8LlNQjSWOOGJnmWzfG
aiOnC0L3fvIEwRXWB07MCqkugZKrC4T6f0xjlCw7vijY9bLvFIBoBjkoVGmzAb7e
4xqq5N2tNAErEpbl7DJaz+h/SGEp4nI1jQBZc2GK9lbMS5wzi0YBiaNV+ERcFhia
umXvkOs98/6RmaqEd9WWmn/FjPlvih7WOk/ai/jY1bL5ROKiQbqTn957VCnGFPgj
1GwGFQ3NkrQZIPHxTKyV2KPPO0qrift/7P0wcR4q1KNnIZSi5dOYlBP/LJM8HXSN
PlRbtNDTHWxKUhdia5F5x2gBxJMT3suLplbWtDvHP+dFvZPYzCHthGHc3zlxDBKE
5MQMBz/3OcnkTx33IyNfTBbMQk9m2dJjl3BmIYs7kxhN2/+IfP0r09nBUVb6/P0A
u5MEJUZI8c22P034iZUd
=5qCb
-----END PGP SIGNATURE-----

--- End Message ---

Reply via email to