[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Bug#503255: sbcl: Error using null pointer in ffi



On Fri, Oct 24, 2008 at 12:49:52PM +0200, Luca Capello wrote:
> Hi there!
> 
> For the d-release list: this is a request about how to fix the bug below
> in time for lenny.
> 
> For everyone: please keep at least the bug report cc:ed, no subscription
> needed, TIA.
> 
> On Fri, 24 Oct 2008 01:48:53 +0200, David Matthew Mattli wrote:
> > Package: sbcl
> > Version: 1:1.0.18.0-1
> > Severity: important
> >
> > Whenever uses sbcl uses a null pointer in a cffi call it gives the following 
> > error:
> >
> > #.(SB-SYS:INT-SAP #X00000000) fell through ETYPECASE expression.
> >    Wanted one of (CHARACTER SYMBOL INTEGER). 
> >
> > This problem was not present in sbcl-1.0.17 and is fixed in 1.0.19.14. 
> > Updating sbcl to the latest version will fix this bug. This bug was reported 
> > and a fix reported on the sbcl-devel list.
> >
> > http://groups.google.com/group/sbcl-devel/browse_thread/thread/b67a3e18bb7a7dea
> 
> David, first of all thank you for the report.
> 
> I haven't looked yet at it in details, but is there any upstream bug
> opened, maybe with a patch that can backported to SBCL-1.0.17?  In that
> case the fix can be easily applied to the version already present in
> lenny and then the migration will be smoother.
> 
> On the contrary, if backporting the fix is not so trivial, let's see if
> the RM accepts a new source upload for lenny.
> 
> Thx, bye,
> Gismo / Luca

Luca, 

Thanks for your quick reply. I've tracked down the fixed applied in
the sbcl cvs for this specific issue.  The relevant messages to
sbcl-commit are here for x86:
http://sourceforge.net/mailarchive/forum.php?thread_name=E1KOy9Y-0006Iv-Uh%40sc8-pr-cvs8.sourceforge.net&forum_name=sbcl-commits

And here for amd64:
http://sourceforge.net/mailarchive/forum.php?thread_name=E1KOy9Z-0006Iy-1x%40sc8-pr-cvs8.sourceforge.net&forum_name=sbcl-commits

The following patch resolves the issue for me on x86 but I haven't
tested it on amd64.

Index: vm.lisp
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/compiler/x86/vm.lisp,v
retrieving revision 1.28
retrieving revision 1.29
diff -u -d -r1.28 -r1.29
--- src/compiler/x86/vm.lisp    12 Apr 2007 14:55:07 -0000      1.28
+++ src/compiler/x86/vm.lisp    1 Aug 2008 17:10:23 -0000       1.29
@@ -384,7 +384,7 @@
 (!def-vm-support-routine immediate-constant-sc (value)
   (typecase value
     ((or (integer #.sb!xc:most-negative-fixnum #.sb!xc:most-positive-fixnum)
-         #-sb-xc-host system-area-pointer character)
+         character)
      (sc-number-or-lose 'immediate))
     (symbol
      (when (static-symbol-p value)

Index: vm.lisp
===================================================================
RCS file: /cvsroot/sbcl/sbcl/src/compiler/x86-64/vm.lisp,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -d -r1.9 -r1.10
--- src/compiler/x86-64/vm.lisp 10 Apr 2007 01:20:25 -0000      1.9
+++ src/compiler/x86-64/vm.lisp 1 Aug 2008 17:10:23 -0000       1.10
@@ -428,7 +428,7 @@
 (!def-vm-support-routine immediate-constant-sc (value)
   (typecase value
     ((or (integer #.sb!xc:most-negative-fixnum #.sb!xc:most-positive-fixnum)
-         #-sb-xc-host system-area-pointer character)
+         character)
      (sc-number-or-lose 'immediate))
     (symbol
      (when (static-symbol-p value)


Reply to: