We managed to install it with debug-symbols now, but did not have a new crash (yet).
However we did a deeper anaylysis of existing crashes. Here is the outcome:
GNU gdb Red Hat Linux (6.5-25.el5rh) Copyright (C) 2006 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you ar= e welcome to change it and/or distribute copies of it under certain condition= s. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "x86_64-redhat-linux-gnu"...Using host libthread= _db library "/lib64/libthread_db.so.1".
Reading symbols from /usr/lib64/libltdl.so.3...done. Loaded symbols for /usr/lib64/libltdl.so.3 Reading symbols from /lib64/libdl.so.2...done. Loaded symbols for /lib64/libdl.so.2 Reading symbols from /lib64/libuuid.so.1...done. Loaded symbols for /lib64/libuuid.so.1 Reading symbols from /usr/lib64/libslapd_db-4.7.so...done. Loaded symbols for /usr/lib64/libslapd_db-4.7.so Reading symbols from /usr/lib64/libodbc.so.1...done. Loaded symbols for /usr/lib64/libodbc.so.1 Reading symbols from /usr/lib64/libsasl2.so.2...done. Loaded symbols for /usr/lib64/libsasl2.so.2 Reading symbols from /lib64/libssl.so.6...done. Loaded symbols for /lib64/libssl.so.6 Reading symbols from /lib64/libcrypto.so.6...done. Loaded symbols for /lib64/libcrypto.so.6 Reading symbols from /lib64/libcrypt.so.1...done. Loaded symbols for /lib64/libcrypt.so.1 Reading symbols from /lib64/libresolv.so.2...done. Loaded symbols for /lib64/libresolv.so.2 Reading symbols from /lib64/libpthread.so.0...done. Loaded symbols for /lib64/libpthread.so.0 Reading symbols from /usr/lib64/libwrap.so.0...done. Loaded symbols for /usr/lib64/libwrap.so.0 Reading symbols from /lib64/libc.so.6...done. Loaded symbols for /lib64/libc.so.6 Reading symbols from /lib64/ld-linux-x86-64.so.2...done. Loaded symbols for /lib64/ld-linux-x86-64.so.2 Reading symbols from /usr/lib64/libgssapi_krb5.so.2...done. Loaded symbols for /usr/lib64/libgssapi_krb5.so.2 Reading symbols from /usr/lib64/libkrb5.so.3...done. Loaded symbols for /usr/lib64/libkrb5.so.3 Reading symbols from /lib64/libcom_err.so.2...done. Loaded symbols for /lib64/libcom_err.so.2 Reading symbols from /usr/lib64/libk5crypto.so.3...done. Loaded symbols for /usr/lib64/libk5crypto.so.3 Reading symbols from /usr/lib64/libz.so.1...done. Loaded symbols for /usr/lib64/libz.so.1 Reading symbols from /lib64/libnsl.so.1...done. Loaded symbols for /lib64/libnsl.so.1 Reading symbols from /usr/lib64/libkrb5support.so.0...done. Loaded symbols for /usr/lib64/libkrb5support.so.0 Reading symbols from /lib64/libkeyutils.so.1...done. Loaded symbols for /lib64/libkeyutils.so.1 Reading symbols from /lib64/libselinux.so.1...done. Loaded symbols for /lib64/libselinux.so.1 Reading symbols from /lib64/libsepol.so.1...done. Loaded symbols for /lib64/libsepol.so.1 Reading symbols from /lib64/libnss_dns.so.2...done. Loaded symbols for /lib64/libnss_dns.so.2 Reading symbols from /lib64/libnss_files.so.2...done. Loaded symbols for /lib64/libnss_files.so.2 Reading symbols from /usr/lib64/sasl2/libplain.so.2...done. Loaded symbols for /usr/lib64/sasl2/libplain.so.2 Reading symbols from /usr/lib64/sasl2/libanonymous.so.2...done. Loaded symbols for /usr/lib64/sasl2/libanonymous.so.2 Reading symbols from /usr/lib64/sasl2/liblogin.so.2...done. Loaded symbols for /usr/lib64/sasl2/liblogin.so.2 Reading symbols from /usr/lib64/openldap/syncprov-2.4.so.2...Reading symbol= s from /usr/lib/debug/usr/lib64/openldap/syncprov-2.4.so.2.5.4.debug...done= . done. Loaded symbols for /usr/lib64/openldap/syncprov-2.4.so.2 Reading symbols from /usr/lib64/openldap/cms_template-2.4.so.2...Reading sy= mbols from /usr/lib/debug/usr/lib64/openldap/cms_template-2.4.so.2.5.4.debu= g...done. done. Loaded symbols for /usr/lib64/openldap/cms_template-2.4.so.2 Reading symbols from /usr/lib64/openldap/cms_modif-2.4.so.2...Reading symbo= ls from /usr/lib/debug/usr/lib64/openldap/cms_modif-2.4.so.2.5.4.debug...do= ne. done. Loaded symbols for /usr/lib64/openldap/cms_modif-2.4.so.2 Reading symbols from /lib64/libgcc_s.so.1...done. Loaded symbols for /lib64/libgcc_s.so.1 Core was generated by `/usr/sbin/slapd -h ldap:/// -u ldap'. Program terminated with signal 6, Aborted. #0 0x00000037a4e30045 in raise () from /lib64/libc.so.6 (gdb) thread apply all bt
Thread 10 (process 12403): #0 0x00000037a5a075a5 in pthread_join () from /lib64/libpthread.so.0 #1 0x000000000043402c in slapd_daemon () at ../../../servers/slapd/daemon.= c:2834 #2 0x0000000000420d75 in main (argc=3D5, argv=3D0x7fff57a47818) at ../../.= ./servers/slapd/main.c:953
Thread 9 (process 12406): #0 0x00000037a5a0a496 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/lib= pthread.so.0 #1 0x00000000005302bd in ldap_int_thread_pool_wrapper (xpool=3D<value opti= mized out>) at ../../../libraries/libldap_r/tpool.c:712 #2 0x00000037a5a062e7 in start_thread () from /lib64/libpthread.so.0 #3 0x00000037a4ece3bd in clone () from /lib64/libc.so.6
Thread 8 (process 12407): #0 0x00000037a5a0a496 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/lib= pthread.so.0 #1 0x00000000005302bd in ldap_int_thread_pool_wrapper (xpool=3D<value opti= mized out>) at ../../../libraries/libldap_r/tpool.c:712 #2 0x00000037a5a062e7 in start_thread () from /lib64/libpthread.so.0 #3 0x00000037a4ece3bd in clone () from /lib64/libc.so.6
Thread 7 (process 12408): #0 0x00000037a5a0a496 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/lib= pthread.so.0 #1 0x00000000005302bd in ldap_int_thread_pool_wrapper (xpool=3D<value opti= mized out>) at ../../../libraries/libldap_r/tpool.c:712 #2 0x00000037a5a062e7 in start_thread () from /lib64/libpthread.so.0 #3 0x00000037a4ece3bd in clone () from /lib64/libc.so.6
Thread 6 (process 12409): #0 0x00000037a5a0a496 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/lib= pthread.so.0 #1 0x00000000005302bd in ldap_int_thread_pool_wrapper (xpool=3D<value opti= mized out>) at ../../../libraries/libldap_r/tpool.c:712 #2 0x00000037a5a062e7 in start_thread () from /lib64/libpthread.so.0 #3 0x00000037a4ece3bd in clone () from /lib64/libc.so.6
Thread 5 (process 12410): #0 0x00000037a5a0a496 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/lib= pthread.so.0 #1 0x00000000005302bd in ldap_int_thread_pool_wrapper (xpool=3D<value opti= mized out>) at ../../../libraries/libldap_r/tpool.c:712 #2 0x00000037a5a062e7 in start_thread () from /lib64/libpthread.so.0 #3 0x00000037a4ece3bd in clone () from /lib64/libc.so.6
Thread 4 (process 12411): #0 0x00000037a5a0a496 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/lib= pthread.so.0 #1 0x00000000005302bd in ldap_int_thread_pool_wrapper (xpool=3D<value opti= mized out>) at ../../../libraries/libldap_r/tpool.c:712 #2 0x00000037a5a062e7 in start_thread () from /lib64/libpthread.so.0 #3 0x00000037a4ece3bd in clone () from /lib64/libc.so.6
Thread 3 (process 12412): #0 0x00000037a4eda178 in __lll_mutex_lock_wait () from /lib64/libc.so.6 #1 0x00000037a4e73c07 in _L_lock_14089 () from /lib64/libc.so.6 #2 0x00000037a4e72a61 in free () from /lib64/libc.so.6 #3 0x0000000000438a99 in connection2anonymous (c=3D0x2af6540b0a50) at ../.= ./../servers/slapd/connection.c:563 #4 0x0000000000438df3 in connection_close (c=3D0x2af6540b0a50) at ../../..= /servers/slapd/connection.c:616 #5 0x0000000000439c50 in connection_operation (ctx=3D0x44e17db0, arg_v=3D<= value optimized out>) at ../../../servers/slapd/connection.c:1159 #6 0x000000000043a201 in connection_read_thread (ctx=3D0x44e17db0, argv=3D= <value optimized out>) at ../../../servers/slapd/connection.c:1440 #7 0x0000000000530268 in ldap_int_thread_pool_wrapper (xpool=3D0x16fafc80)= at ../../../libraries/libldap_r/tpool.c:700 #8 0x00000037a5a062e7 in start_thread () from /lib64/libpthread.so.0 #9 0x00000037a4ece3bd in clone () from /lib64/libc.so.6
Thread 2 (process 12413): #0 0x00000037a5a0a496 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/lib= pthread.so.0 #1 0x00000000005302bd in ldap_int_thread_pool_wrapper (xpool=3D<value opti= mized out>) at ../../../libraries/libldap_r/tpool.c:712 #2 0x00000037a5a062e7 in start_thread () from /lib64/libpthread.so.0 #3 0x00000037a4ece3bd in clone () from /lib64/libc.so.6
Thread 1 (process 12405): #0 0x00000037a4e30045 in raise () from /lib64/libc.so.6 #1 0x00000037a4e31ae0 in abort () from /lib64/libc.so.6 #2 0x00000037a4e681bb in __libc_message () from /lib64/libc.so.6 #3 0x00000037a4e6da07 in malloc_consolidate () from /lib64/libc.so.6 #4 0x00000037a4e6f1fb in _int_free () from /lib64/libc.so.6 #5 0x00000037a4e72a6c in free () from /lib64/libc.so.6 #6 0x00000037a4ecabda in __vsyslog_chk () from /lib64/libc.so.6 #7 0x00000037a4ecaf33 in __syslog_chk () from /lib64/libc.so.6 #8 0x0000000000437869 in slapd_daemon_task (ptr=3D<value optimized out>) a= t ../../../servers/slapd/daemon.c:2771 #9 0x00000037a5a062e7 in start_thread () from /lib64/libpthread.so.0 #10 0x00000037a4ece3bd in clone () from /lib64/libc.so.6 (gdb) thread 3 [Switching to thread 3 (process 12412)]#0 0x00000037a4eda178 in __lll_mute= x_lock_wait () from /lib64/libc.so.6 (gdb) bt #0 0x00000037a4eda178 in __lll_mutex_lock_wait () from /lib64/libc.so.6 #1 0x00000037a4e73c07 in _L_lock_14089 () from /lib64/libc.so.6 #2 0x00000037a4e72a61 in free () from /lib64/libc.so.6 #3 0x0000000000438a99 in connection2anonymous (c=3D0x2af6540b0a50) at ../.= ./../servers/slapd/connection.c:563 #4 0x0000000000438df3 in connection_close (c=3D0x2af6540b0a50) at ../../..= /servers/slapd/connection.c:616 #5 0x0000000000439c50 in connection_operation (ctx=3D0x44e17db0, arg_v=3D<= value optimized out>) at ../../../servers/slapd/connection.c:1159 #6 0x000000000043a201 in connection_read_thread (ctx=3D0x44e17db0, argv=3D= <value optimized out>) at ../../../servers/slapd/connection.c:1440 #7 0x0000000000530268 in ldap_int_thread_pool_wrapper (xpool=3D0x16fafc80)= at ../../../libraries/libldap_r/tpool.c:700 #8 0x00000037a5a062e7 in start_thread () from /lib64/libpthread.so.0 #9 0x00000037a4ece3bd in clone () from /lib64/libc.so.6 (gdb) fr 3 #3 0x0000000000438a99 in connection2anonymous (c=3D0x2af6540b0a50) at ../.= ./../servers/slapd/connection.c:563 563 if ( !BER_BVISNULL( &c->c_authmech ) ) { (gdb) p * 0x2af6540b0a50 $1 =3D 3 (gdb) thread 1 [Switching to thread 1 (process 12405)]#0 0x00000037a4e30045 in raise () f= rom /lib64/libc.so.6 (gdb) bt #0 0x00000037a4e30045 in raise () from /lib64/libc.so.6 #1 0x00000037a4e31ae0 in abort () from /lib64/libc.so.6 #2 0x00000037a4e681bb in __libc_message () from /lib64/libc.so.6 #3 0x00000037a4e6da07 in malloc_consolidate () from /lib64/libc.so.6 #4 0x00000037a4e6f1fb in _int_free () from /lib64/libc.so.6 #5 0x00000037a4e72a6c in free () from /lib64/libc.so.6 #6 0x00000037a4ecabda in __vsyslog_chk () from /lib64/libc.so.6 #7 0x00000037a4ecaf33 in __syslog_chk () from /lib64/libc.so.6 #8 0x0000000000437869 in slapd_daemon_task (ptr=3D<value optimized out>) a= t ../../../servers/slapd/daemon.c:2771 #9 0x00000037a5a062e7 in start_thread () from /lib64/libpthread.so.0 #10 0x00000037a4ece3bd in clone () from /lib64/libc.so.6 (gdb) fr 8 #8 0x0000000000437869 in slapd_daemon_task (ptr=3D<value optimized out>) a= t ../../../servers/slapd/daemon.c:2771 2771 Debug( LDAP_DEBUG_ANY, (gdb) thread 3 [Switching to thread 3 (process 12412)]#0 0x00000037a4eda178 in __lll_mute= x_lock_wait () from /lib64/libc.so.6 (gdb) fr 4 #4 0x0000000000438df3 in connection_close (c=3D0x2af6540b0a50) at ../../..= /servers/slapd/connection.c:616 616 backend_connection_destroy(c); (gdb) p * 0x2af6540b0a50 $2 =3D 3 (gdb) fr 3 #3 0x0000000000438a99 in connection2anonymous (c=3D0x2af6540b0a50) at ../.= ./../servers/slapd/connection.c:563 563 if ( !BER_BVISNULL( &c->c_authmech ) ) { (gdb) p * 0x2af6540b0a50 $3 =3D 3 (gdb) quit GNU gdb Red Hat Linux (6.5-25.el5rh) Copyright (C) 2006 Free Software Foundation, Inc. GDB is free software, covered by the GNU General Public License, and you ar= e welcome to change it and/or distribute copies of it under certain condition= s. Type "show copying" to see the conditions. There is absolutely no warranty for GDB. Type "show warranty" for details. This GDB was configured as "x86_64-redhat-linux-gnu"...Using host libthread= _db library "/lib64/libthread_db.so.1".
Reading symbols from /usr/lib64/libltdl.so.3...done. Loaded symbols for /usr/lib64/libltdl.so.3 Reading symbols from /lib64/libdl.so.2...done. Loaded symbols for /lib64/libdl.so.2 Reading symbols from /lib64/libuuid.so.1...done. Loaded symbols for /lib64/libuuid.so.1 Reading symbols from /usr/lib64/libslapd_db-4.7.so...done. Loaded symbols for /usr/lib64/libslapd_db-4.7.so Reading symbols from /usr/lib64/libodbc.so.1...done. Loaded symbols for /usr/lib64/libodbc.so.1 Reading symbols from /usr/lib64/libsasl2.so.2...done. Loaded symbols for /usr/lib64/libsasl2.so.2 Reading symbols from /lib64/libssl.so.6...done. Loaded symbols for /lib64/libssl.so.6 Reading symbols from /lib64/libcrypto.so.6...done. Loaded symbols for /lib64/libcrypto.so.6 Reading symbols from /lib64/libcrypt.so.1...done. Loaded symbols for /lib64/libcrypt.so.1 Reading symbols from /lib64/libresolv.so.2...done. Loaded symbols for /lib64/libresolv.so.2 Reading symbols from /lib64/libpthread.so.0...done. Loaded symbols for /lib64/libpthread.so.0 Reading symbols from /usr/lib64/libwrap.so.0...done. Loaded symbols for /usr/lib64/libwrap.so.0 Reading symbols from /lib64/libc.so.6...done. Loaded symbols for /lib64/libc.so.6 Reading symbols from /lib64/ld-linux-x86-64.so.2...done. Loaded symbols for /lib64/ld-linux-x86-64.so.2 Reading symbols from /usr/lib64/libgssapi_krb5.so.2...done. Loaded symbols for /usr/lib64/libgssapi_krb5.so.2 Reading symbols from /usr/lib64/libkrb5.so.3...done. Loaded symbols for /usr/lib64/libkrb5.so.3 Reading symbols from /lib64/libcom_err.so.2...done. Loaded symbols for /lib64/libcom_err.so.2 Reading symbols from /usr/lib64/libk5crypto.so.3...done. Loaded symbols for /usr/lib64/libk5crypto.so.3 Reading symbols from /usr/lib64/libz.so.1...done. Loaded symbols for /usr/lib64/libz.so.1 Reading symbols from /lib64/libnsl.so.1...done. Loaded symbols for /lib64/libnsl.so.1 Reading symbols from /usr/lib64/libkrb5support.so.0...done. Loaded symbols for /usr/lib64/libkrb5support.so.0 Reading symbols from /lib64/libkeyutils.so.1...done. Loaded symbols for /lib64/libkeyutils.so.1 Reading symbols from /lib64/libselinux.so.1...done. Loaded symbols for /lib64/libselinux.so.1 Reading symbols from /lib64/libsepol.so.1...done. Loaded symbols for /lib64/libsepol.so.1 Reading symbols from /lib64/libnss_dns.so.2...done. Loaded symbols for /lib64/libnss_dns.so.2 Reading symbols from /lib64/libnss_files.so.2...done. Loaded symbols for /lib64/libnss_files.so.2 Reading symbols from /usr/lib64/sasl2/libplain.so.2...done. Loaded symbols for /usr/lib64/sasl2/libplain.so.2 Reading symbols from /usr/lib64/sasl2/libanonymous.so.2...done. Loaded symbols for /usr/lib64/sasl2/libanonymous.so.2 Reading symbols from /usr/lib64/sasl2/liblogin.so.2...done. Loaded symbols for /usr/lib64/sasl2/liblogin.so.2 Reading symbols from /usr/lib64/openldap/syncprov-2.4.so.2...Reading symbol= s from /usr/lib/debug/usr/lib64/openldap/syncprov-2.4.so.2.5.4.debug...done= . done. Loaded symbols for /usr/lib64/openldap/syncprov-2.4.so.2 Reading symbols from /usr/lib64/openldap/cms_template-2.4.so.2...Reading sy= mbols from /usr/lib/debug/usr/lib64/openldap/cms_template-2.4.so.2.5.4.debu= g...done. done. Loaded symbols for /usr/lib64/openldap/cms_template-2.4.so.2 Reading symbols from /usr/lib64/openldap/cms_modif-2.4.so.2...Reading symbo= ls from /usr/lib/debug/usr/lib64/openldap/cms_modif-2.4.so.2.5.4.debug...do= ne. done. Loaded symbols for /usr/lib64/openldap/cms_modif-2.4.so.2 Reading symbols from /lib64/libgcc_s.so.1...done. Loaded symbols for /lib64/libgcc_s.so.1 Core was generated by `/usr/sbin/slapd -h ldap:/// -u ldap'. Program terminated with signal 6, Aborted. #0 0x00000037a4e30045 in raise () from /lib64/libc.so.6 (gdb) thread apply all bt
Thread 3 (process 17892): #0 0x00000037a5a075a5 in pthread_join () from /lib64/libpthread.so.0 #1 0x000000000043402c in slapd_daemon () at ../../../servers/slapd/daemon.= c:2834 #2 0x0000000000420d75 in main (argc=3D5, argv=3D0x7fff3a6ee4b8) at ../../.= ./servers/slapd/main.c:953
Thread 2 (process 17894): #0 0x00000037a5a0a496 in pthread_cond_wait@@GLIBC_2.3.2 () from /lib64/lib= pthread.so.0 #1 0x000000000052fdab in ldap_pvt_thread_pool_destroy (tpool=3D0x8635e8, r= un_pending=3D487320688) at ../../../libraries/libldap_r/tpool.c:558 #2 0x000000000043767c in slapd_daemon_task (ptr=3D<value optimized out>) a= t ../../../servers/slapd/daemon.c:2764 #3 0x00000037a5a062e7 in start_thread () from /lib64/libpthread.so.0 #4 0x00000037a4ece3bd in clone () from /lib64/libc.so.6
Thread 1 (process 17895): #0 0x00000037a4e30045 in raise () from /lib64/libc.so.6 #1 0x00000037a4e31ae0 in abort () from /lib64/libc.so.6 #2 0x00000037a4e681bb in __libc_message () from /lib64/libc.so.6 #3 0x00000037a4e6f444 in _int_free () from /lib64/libc.so.6 #4 0x00000037a4e72a6c in free () from /lib64/libc.so.6 #5 0x0000000000559e07 in sb_rdahead_remove (sbiod=3D0x2aaac488d0d0) at ../= ../../libraries/liblber/sockbuf.c:606 #6 0x0000000000559fb9 in ber_sockbuf_free (sb=3D0x2aaac488d0d0) at ../../.= ./libraries/liblber/sockbuf.c:71 #7 0x0000000000000000 in ?? () (gdb) thread 1 [Switching to thread 1 (process 17895)]#0 0x00000037a4e30045 in raise () f= rom /lib64/libc.so.6 (gdb) bt #0 0x00000037a4e30045 in raise () from /lib64/libc.so.6 #1 0x00000037a4e31ae0 in abort () from /lib64/libc.so.6 #2 0x00000037a4e681bb in __libc_message () from /lib64/libc.so.6 #3 0x00000037a4e6f444 in _int_free () from /lib64/libc.so.6 #4 0x00000037a4e72a6c in free () from /lib64/libc.so.6 #5 0x0000000000559e07 in sb_rdahead_remove (sbiod=3D0x2aaac488d0d0) at ../= ../../libraries/liblber/sockbuf.c:606 #6 0x0000000000559fb9 in ber_sockbuf_free (sb=3D0x2aaac488d0d0) at ../../.= ./libraries/liblber/sockbuf.c:71 #7 0x0000000000000000 in ?? () (gdb) frame 5 #5 0x0000000000559e07 in sb_rdahead_remove (sbiod=3D0x2aaac488d0d0) at ../= ../../libraries/liblber/sockbuf.c:606 in ../../../libraries/liblber/sockbuf.c (gdb) p sbiod $1 =3D (Sockbuf_IO_Desc *) 0x2aaac488d0d0 (gdb) p * 0x2aaac488d0d0 $2 =3D 10 (gdb) p * sbiod $3 =3D {sbiod_level =3D 10, sbiod_sb =3D 0x2aaac49fc5c0, sbiod_io =3D 0x7e8= 340, sbiod_pvt =3D 0x2aaac48944c0, sbiod_next =3D 0x0} (gdb) p * 0x2aaac49fc5c0 $4 =3D 3 (gdb) p * 0x2aaac48944c0 $5 =3D 1601201012 (gdb) quit [root@ts2mstsv010 dumps]#
From: De Bonis Hamelin, Marie Antoinette (Marian - HP Software - CMS) Sent: Donnerstag, 25. M=E4rz 2010 14:20 To: Hummel, Wolfgang Subject: ldap core analysis
Wolfgang,
If you check I have let 2 files which have all stack trace for a core.<pid>= on the ldap. In one of the core file txt anayzis, we can see the call to sb_rdahead_remo= ve() just after the libc is doing is malloc/free check and it aborts. I have checked the code (see below), sbiod is not null plus we have an asse= rt in the code. So according to me, p is corrupted because sbiod->sbiod_pvt is not a valid = address.
Marian
-> openldap/dist/libraries/liblber/sockbuf.c static int sb_rdahead_remove( Sockbuf_IO_Desc *sbiod ) { Sockbuf_Buf *p; assert( sbiod !=3D NULL ); p =3D (Sockbuf_Buf *)sbiod->sbiod_pvt; if ( p->buf_ptr !=3D p->buf_end ) return -1; ber_pvt_sb_buf_destroy( (Sockbuf_Buf *)(sbiod->sbiod_pvt) ); LBER_FREE( sbiod->sbiod_pvt ); sbiod->sbiod_pvt =3D NULL;
return 0; }
Wolfgang Hummel