0.7.6.14:
authorChristophe Rhodes <csr21@cam.ac.uk>
Wed, 7 Aug 2002 18:48:47 +0000 (18:48 +0000)
committerChristophe Rhodes <csr21@cam.ac.uk>
Wed, 7 Aug 2002 18:48:47 +0000 (18:48 +0000)
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 :-/

src/code/toplevel.lisp
version.lisp-expr

index af2f3f1..9f1a916 100644 (file)
                    (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))
                    (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)))
index 31f1ad4..b990d22 100644 (file)
@@ -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"