From 4aa08cf49281110c94f534a8e118bb8fcbfc18db Mon Sep 17 00:00:00 2001 From: Nikodemus Siivola Date: Mon, 3 Nov 2008 14:33:27 +0000 Subject: [PATCH] 1.0.22.10: detect infinite recursion during wrapper validation * Patch by Attila Lendvai. ...still hoping for a test-case, so this could be fixed properly. --- NEWS | 2 ++ src/pcl/wrapper.lisp | 4 ++++ version.lisp-expr | 2 +- 3 files changed, 7 insertions(+), 1 deletion(-) diff --git a/NEWS b/NEWS index b23f286..4e54130 100644 --- a/NEWS +++ b/NEWS @@ -9,6 +9,8 @@ changes in sbcl-1.0.23 relative to 1.0.22: special handling by the pretty printer. * bug fix: slot symbol-macros from WITH-SLOTS inside DEFMETHOD bodies now interact correctly with type declarations. + * partial bug fix: PCL detects infinite recursion during wrapper + validation. (thanks to Attila Lendvai) changes in sbcl-1.0.22 relative to 1.0.21: * minor incompatible change: LOAD-SHARED-OBJECT no longer by default looks diff --git a/src/pcl/wrapper.lisp b/src/pcl/wrapper.lisp index 3ea3a2c..d67e1c4 100644 --- a/src/pcl/wrapper.lisp +++ b/src/pcl/wrapper.lisp @@ -178,6 +178,10 @@ ;; INSTANCE's class. See also the comment above ;; FORCE-CACHE-FLUSHES. Paul Dietz has test cases for this. (force-cache-flushes (class-of instance)) + ;; KLUDGE avoid an infinite recursion, it's still better to + ;; bail out with an AVER for server softwares. see FIXME above. + ;; details: http://thread.gmane.org/gmane.lisp.steel-bank.devel/10175 + (aver (not (eq (layout-invalid (wrapper-of instance)) t))) (check-wrapper-validity instance)) ((consp state) (ecase (car state) diff --git a/version.lisp-expr b/version.lisp-expr index 795d615..2edfdad 100644 --- a/version.lisp-expr +++ b/version.lisp-expr @@ -17,4 +17,4 @@ ;;; checkins which aren't released. (And occasionally for internal ;;; versions, especially for internal versions off the main CVS ;;; branch, it gets hairier, e.g. "0.pre7.14.flaky4.13".) -"1.0.22.9" +"1.0.22.10" -- 1.7.10.4