[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
ldapsearch strlen SIGSEGV on Solaris (ITS#2248)
Full_Name: Miroslav Zubcic
Version: 2.1.9
OS: SunOS zvijer 5.8 Generic_108528-13 sun4u sparc SUNW,Ultra-Enterprise
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (213.202.124.154)
Something has shenged in clients/tools/ldapsearch.c between 2.1.8 and 2.1.9
and now 64bit ldapsearch is coredumping on my Ultra machine *if* I don't
specify
-L(LL) options.
I'm not C programmer, but if I comment out this part in ldapsearch.c and
recompile ldapsearch(1), everything is OK:
printf( "#\n"
"# LDAPv%d\n"
"# base <%s> with scope %s\n"
"# filter%s: %s\n"
"# requesting: ",
version,
base, (scope == LDAP_SCOPE_BASE) ? "base"
: ((scope == LDAP_SCOPE_ONELEVEL) ? "one" : "sub"),
infile != NULL ? " pattern" : "",
filtpattern );
This is difference between 2.1.8 (`-') and 2.1.9 (`+') ldapsearch.c code:
if (ldif < 2 ) {
- printf( "#\n# LDAPv%d\n# filter%s: %s\n# requesting: ",
+ printf( "#\n"
+ "# LDAPv%d\n"
+ "# base <%s> with scope %s\n"
+ "# filter%s: %s\n"
+ "# requesting: ",
version,
+ base, (scope == LDAP_SCOPE_BASE) ? "base"
+ : ((scope == LDAP_SCOPE_ONELEVEL) ? "one" :
"sub"),
infile != NULL ? " pattern" : "",
filtpattern );
Below is actual backtrace FYI:
-----------------------------------------------
(root){lav}[tools]# mdb core
Loading modules: [ ]
> ::status
debugging core file of ldapsearch (64-bit) from lav
executable file: /usr/local/src/openldap-2.1.9/clients/tools/ldapsearch
initial argv: ./ldapsearch -x
status: SIGSEGV (Segmentation Fault)
> ::stack
libc.so.1`strlen+0x38(0, 100083af3, 73, 100197a70, 0, 0)
libc.so.1`printf+0xfc(0, 1001979f0, ffffffff7e0c0d08, 100083758, 100083080, 2)
main+0x4598(2, ffffffff7ffff5b8, ffffffff7ffff5d0, 100197760, 100000000, 0)
_start+0x7c(0, 0, 0, 0, 0, 0)
> $?
no process
SIGSEGV: Segmentation Fault
%g0 = 0x0000000000000000 %l0 = 0x0000000000000000
%g1 = 0x00000001000830b8 %l1 = 0x00000001000830bf
%g2 = 0x0000000000000000 %l2 = 0x0000000000000000
%g3 = 0x0000000000000000 %l3 = 0x0000000100083af4
%g4 = 0xffffffff7fffeee0 %l4 = 0x0000000100197771
ldapsearch`_sasl_verify_password+0x29
%g5 = 0x0000000000001988 %l5 = 0x0000000000000002
%g6 = 0x0000000000000000 %l6 = 0x0000000000000001
%g7 = 0x0000000000000000 %l7 = 0xffffffff7e0b2f60
%o0 = 0x0000000000000000 %i0 = 0x0000000000000000
%o1 = 0x0000000000000002 %i1 = 0x0000000100083af3
%o2 = 0x0000000000000002 %i2 = 0x0000000000000073
%o3 = 0x0000000000000002 %i3 = 0x0000000100197a70
ldapsearch`_ctype+0x200
%o4 = 0x000000000000005a %i4 = 0x0000000000000000
%o5 = 0xffffffff7e0c0404 libc.so.1`_sobuf+0x3c %i5 = 0x0000000000000000
%o6 = 0xffffffff7fffd601 %i6 = 0xffffffff7fffe581
%o7 = 0xffffffff7df8be0c libc.so.1`_doprnt+0x1948 %i7 = 0xffffffff7df8da48
libc.so.1`printf+0xfc
%ccr = 0x99 xcc=NzvC icc=NzvC
%y = 0x0000000000000000
%pc = 0xffffffff7df3c198 libc.so.1`strlen+0x38
%npc = 0xffffffff7df3c19c libc.so.1`strlen+0x3c
%sp = 0xffffffff7fffd601
%fp = 0xffffffff7fffe581
%asi = 0x82
%fprs = 0x07
>
-------------------------------------------------------------------
Hope this helps.
--
Miroslav