![](https://secure.gravatar.com/avatar/9ed6ab1d1019fe41799ee83440518e36.jpg?s=120&d=mm&r=g)
"Hoehle, Joerg-Cyril" <Joerg-Cyril.Hoehle@t-systems.com> writes:
Uhoh, then it's likely not the FFI. Please investigate.
It looks like the problem is with FFI:UNSIGNED-FOREIGN-ADDRESS and FFI:FOREIGN-ADDRESS-UNSIGNED expecting and returning 32-bit integers: [ ...with *print-base* set to 16... ] CFFI[47]> (ffi:with-foreign-object (x 'ffi:int) (print (ffi:foreign-address x)) (print (ffi:foreign-address-unsigned (ffi:foreign-address x))) nil) #<FOREIGN-ADDRESS #x00007FFFFFEF3750> FFEF3750 NIL CFFI[49]> (ffi:unsigned-foreign-address #x100000000) *** - not a 32-bit integer: 100000000 The following restarts are available: ABORT :R1 ABORT Break 1 CFFI[50]> This breaks CFFI-SYS:INC-POINTER which ends up returning bogus pointers because the high 32 bits have been truncated. James