~ chicken-core (chicken-5) c1a2206c03c42726e5434b67c3b4a923ed766eca


commit c1a2206c03c42726e5434b67c3b4a923ed766eca
Author:     Christian Kellermann <ckeen@pestilenz.org>
AuthorDate: Sat Mar 17 19:36:46 2012 +0100
Commit:     Peter Bex <peter.bex@xs4all.nl>
CommitDate: Thu Mar 22 21:23:12 2012 +0100

    Do not specialise make-vector calls with negative lengths
    
    Signed-off-by: Peter Bex <peter.bex@xs4all.nl>

diff --git a/c-platform.scm b/c-platform.scm
index 856af14e..d502dc0d 100644
--- a/c-platform.scm
+++ b/c-platform.scm
@@ -1045,7 +1045,7 @@
 		  (let ([tmp (gensym)]
 			[c (first (node-parameters n))] )
 		    (and (fixnum? c)
-			 (<= c 32)
+			 (<= 0 c 32)
 			 (let ([val (if (pair? (cdr callargs))
 					(second callargs)
 					(make-node '##core#undefined '() '()) ) ] )
diff --git a/tests/library-tests.scm b/tests/library-tests.scm
index b13b84f1..6e9fdad8 100644
--- a/tests/library-tests.scm
+++ b/tests/library-tests.scm
@@ -269,3 +269,7 @@
 
 (assert (= 2 guard-called))
 
+;;; vector and blob limits
+
+(assert-fail (make-blob -1))
+(assert-fail (make-vector -1))
Trap