[Date Prev][Date Next] [Chronological] [Thread] [Top]

RE: ldapsearch strlen SIGSEGV on Solaris (ITS#2248)



This bug has been already been fixed in OpenLDAP 2.1.10

  -- Howard Chu
  Chief Architect, Symas Corp.       Director, Highland Sun
  http://www.symas.com               http://highlandsun.com/hyc
  Symas: Premier OpenSource Development and Support 

> -----Original Message-----
> From: owner-openldap-bugs@OpenLDAP.org
> [mailto:owner-openldap-bugs@OpenLDAP.org]On Behalf Of
> mzubcic@zesoi.fer.hr
> Sent: Monday, December 23, 2002 3:03 AM
> To: openldap-its@OpenLDAP.org
> Subject: 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
>