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

UTF8bvnormalize bug on 64bit Solaris 8 (ITS#2198)



Full_Name: Miroslav Zubcic
Version: 2.1.8
OS: SunOS lav 5.8 Generic_108528-13 sun4u sparc SUNW,Ultra-Enterprise
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (213.202.124.153)


I have compiled OpenLDAP 2.1.8 with gcc 3.2 on Solaris 8. When I try to import
initial
ldif from file with slapadd(8) or re-index base with slapindex, I get SIGSEGV.

If I comment out this line in slapd.conf(5):

index		cn,sn,uid   pres,eq,approx,sub

... then I don't get SIGSEGV. Attributes cn and sn are containing some UTF 8
letters
specific for my language.

OpenLDAP is compiled (entirely) like 64bit application.

Here is basic debug output from some debugger I have found on Solaris 8:
(gdb does not know how to handle 64bit coredumps).

IMHO big is in function which I put in subject ...

(root){zvijer}[schema]$ mdb core
Loading modules: [ ]
> ::status
debugging core file of slapindex (64-bit) from zvijer
executable file: /opt/local/sbin/slapindex
initial argv: slapindex
status: SIGSEGV (Segmentation Fault)
> ::stack
uckdecomp+0x74(1008517c0, 2, ffffffff7fffee58, ffffffff7fffee54, 10000,
ffffffffffff5400)
UTF8bvnormalize+0x244(2, 1003458a0, 1008517c0, 1, 1c, ffffffff7fffef30)
0x100029d30(0, 71e, 100239660, 10023d490, 1002485f8, 100346980)
0x100085f60(100029c80, 1, 1002485f8, 100346980, 3f7, 1)
0x10008587c(10024c140, 100248590, 100233790, 100346980, 3f7, 1)
index_entry+0x158(10024c140, 1, 10084ce20, 1003468f0, 100, 100000000)
ldbm_tool_entry_reindex+0x174(10024c140, 3f7, 10024c140, 0, 100000000, 0)
main+0x13c(0, 10022a300, ffffffff7ffff4d8, 1002306c0, 100000000, 0)
_start+0x7c(0, 0, 0, 0, 0, 0)
> $?
no process
SIGSEGV: Segmentation Fault
%g0 = 0x0000000000000000                 %l0 = 0x0000000000000000 
%g1 = 0xffffffff7fffed60                 %l1 = 0x0000000000000000 
%g2 = 0x0000000000000000                 %l2 = 0x0000000000000000 
%g3 = 0x0000000000000000                 %l3 = 0x0000000000000000 
%g4 = 0x0000000100285b50                 %l4 = 0x0000000000000000 
%g5 = 0xffffffff7fffed68                 %l5 = 0x0000000000000000 
%g6 = 0x0000000000000000                 %l6 = 0x0000000000000000 
%g7 = 0x0000000100231620                 %l7 = 0x0000000000000002 

%o0 = 0x00000cac7ffffffe                 %i0 = 0x00000001008517c0 
%o1 = 0x00001958ffffffff                 %i1 = 0x0000000000000002 
%o2 = 0x00001958ffffffff                 %i2 = 0xffffffff7fffee58 
%o3 = 0x00006563fffffff0                 %i3 = 0xffffffff7fffee54 
%o4 = 0x0000000000000000                 %i4 = 0x0000000000010000 
%o5 = 0x0000000000000020                 %i5 = 0xffffffffffff5400 
%o6 = 0xffffffff7fffe4b1                 %i6 = 0xffffffff7fffe5a1 
%o7 = 0x000000010008d06c                 %i7 = 0x000000010008dd24
UTF8bvnormalize+0x244

 %ccr = 0x00 xcc=nzvc icc=nzvc
   %y = 0x0000000000000000
  %pc = 0x000000010008ac94 uckdecomp+0x74
 %npc = 0x000000010008ac98 uckdecomp+0x78
  %sp = 0xffffffff7fffe4b1
  %fp = 0xffffffff7fffe5a1

 %asi = 0x82
%fprs = 0x07
> 

(root){zvijer}[schema]$ ldd /opt/local/sbin/slapindex 
        libresolv.so.2 =>        /usr/lib/64/libresolv.so.2
        libsocket.so.1 =>        /usr/lib/64/libsocket.so.1
        libdb-4.0.so =>  /opt/local/lib/sparcv9/libdb-4.0.so
        libssl.so.0.9.6 =>       /opt/local/lib/sparcv9/libssl.so.0.9.6
        libcrypto.so.0.9.6 =>    /opt/local/lib/sparcv9/libcrypto.so.0.9.6
        libgssapi_krb5.so.2 =>   /opt/local/lib/sparcv9/libgssapi_krb5.so.2
        libgen.so.1 =>   /usr/lib/64/libgen.so.1
        libnsl.so.1 =>   /usr/lib/64/libnsl.so.1
        libdl.so.1 =>    /usr/lib/64/libdl.so.1
        libpthread.so.1 =>       /usr/lib/64/libpthread.so.1
        libc.so.1 =>     /usr/lib/64/libc.so.1
        libkrb5.so.3 =>  /opt/local/lib/sparcv9/libkrb5.so.3
        libk5crypto.so.3 =>      /opt/local/lib/sparcv9/libk5crypto.so.3
        libcom_err.so.3 =>       /opt/local/lib/sparcv9/libcom_err.so.3
        libgcc_s.so.1 =>         /usr/local/lib/sparcv9/libgcc_s.so.1
        libmp.so.2 =>    /usr/lib/64/libmp.so.2
        libthread.so.1 =>        /usr/lib/64/libthread.so.1
        /usr/platform/SUNW,Ultra-Enterprise/lib/sparcv9/libc_psr.so.1

I hope I have enough debug information this time. :-)

-- 
Miroslav