From: Christophe Rhodes Date: Wed, 7 Aug 2002 18:48:47 +0000 (+0000) Subject: 0.7.6.14: X-Git-Url: http://repo.macrolet.net/gitweb/?a=commitdiff_plain;h=b0070d5b0074ef73dc5b2f36205b31d94b8f95a9;p=sbcl.git 0.7.6.14: Fix potential off-by-one in SCRUB-CONTROL-STACK when the stack grows downwards. v-----v-- guard page extent [ || ] ^-- word at which we should stop scrubbing in contrast with v----v-- guard page extent [ | ] ^-- word at which we should stop scrubbing ... <= changes to < ... I thought this might fix the large dynamic sizes after purify seen on the x86 since 0.7.6.2, but no dice :-/ --- diff --git a/src/code/toplevel.lisp b/src/code/toplevel.lisp index af2f3f1..9f1a916 100644 --- a/src/code/toplevel.lisp +++ b/src/code/toplevel.lisp @@ -216,7 +216,7 @@ (type (unsigned-byte 20) count) (values (unsigned-byte 20))) (let ((loc (int-sap (- (sap-int ptr) (+ offset sb!vm:n-word-bytes))))) - (cond ((<= (sap-int loc) end-of-stack) 0) + (cond ((< (sap-int loc) end-of-stack) 0) ((= offset bytes-per-scrub-unit) (look (int-sap (- (sap-int ptr) bytes-per-scrub-unit)) 0 count)) @@ -229,7 +229,7 @@ (type (unsigned-byte 20) count) (values (unsigned-byte 20))) (let ((loc (int-sap (- (sap-int ptr) offset)))) - (cond ((<= (sap-int loc) end-of-stack) 0) + (cond ((< (sap-int loc) end-of-stack) 0) ((= offset bytes-per-scrub-unit) count) ((zerop (sb!kernel::get-lisp-obj-address (stack-ref loc 0))) diff --git a/version.lisp-expr b/version.lisp-expr index 31f1ad4..b990d22 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -18,4 +18,4 @@ ;;; for internal versions, especially for internal versions off the ;;; main CVS branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"0.7.6.13" +"0.7.6.14"