Howard Chu wrote:
> Seems to build OK on Solaris 10 sparc64. tests are still running
at the moment.
>
test047 crashed in rwm_dn_massage, it looks like invalid pointers were passed in.
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 5 (LWP 5)]
0xffffffff7cf371f0 in strlen () from /lib/64/libc.so.1
(gdb) bt
#0 0xffffffff7cf371f0 in strlen () from /lib/64/libc.so.1
#1 0xffffffff7cf9f968 in _ndoprnt () from /lib/64/libc.so.1
#2 0xffffffff7cfa2094 in vsnprintf () from /lib/64/libc.so.1
#3 0x0000000100188b5c in lutil_debug (debug=2042613608, level=0,
fmt=0xffffffff7c701000 "")
at ../../../r24/libraries/liblber/debug.c:66
#4 0x000000010013c7a4 in rwm_dn_massage (dc=0x105, in=0x4, dn=0x100206f08)
at ../../../../r24/servers/slapd/overlays/rwmdn.c:178
#5 0x000000010013c9d0 in rwm_dn_massage_pretty (dc=0xffffffff79bfe460,
in=0xffffffff79bfe1d8, pdn=0xffffffff79bfe100)
at ../../../../r24/servers/slapd/overlays/rwmdn.c:87
Not sure why passing from frame 5 to frame 4 would have messed up unless the
function prototypes are wrong, but they look OK.
The bad stack trace was a red herring. The problem here is simply passing a
NULL pointer to a string-format Debug statement, and the usual stuff with
Solaris libc/string library crashing on NULL pointers. Pretty sure that just
protecting the Debug statement here is sufficient.
--
-- Howard Chu
Chief Architect, Symas Corp.
http://www.symas.com
Director, Highland Sun
http://highlandsun.com/hyc/
Chief Architect, OpenLDAP
http://www.openldap.org/project/