From: [EMAIL PROTECTED] Operating system: Solaris 8/Intel PHP version: 4.1.2 PHP Bug Type: LDAP related Bug description: Conflict between OpenLDAP and Oracle
PHP dumps core when compiled with both LDAP and OCI8. The reason is the Oracle client libraries include an LDAP library, and PHP is calling the Oracle ldap_modify_s instead of the OpenLDAP ldap_modify_s. We are using OpenLDAP 1.2.11 and Oracle 8.1.6. Short-term workaround: use LD_PRELOAD, e.g. add: LD_PRELOAD=/usr/local/ldap/lib/libldap.so export LD_PRELOAD to your Apache start scripts. Here is the gdb backtrace: (gdb) r -X -f /usr/local/apache/conf/httpd-kefta.conf Starting program: /usr/local/apache/bin/httpd -X -f /usr/local/apache/conf/httpd -kefta.conf [New LWP 1] [New LWP 2] [New LWP 3] warning: Lowest section in /usr/lib/libintl.so.1 is .dynamic at 00000074 [New LWP 4] warning: Lowest section in /usr/lib/libintl.so.1 is .dynamic at 00000074 Program received signal SIGSEGV, Segmentation fault. 0xde589e0a in gsleenSBerPrintf () from /export/home/oracle/lib/libclntsh.so.8.0 (gdb) bt #0 0xde589e0a in gsleenSBerPrintf () from /export/home/oracle/lib/libclntsh.so.8.0 #1 0xde580234 in gslcmom_Modify () from /export/home/oracle/lib/libclntsh.so.8.0 #2 0xde57d8e7 in ldap_modify_s () from /export/home/oracle/lib/libclntsh.so.8.0 #3 0xdee2f440 in php_ldap_do_modify (ht=3, return_value=0x81f5d0c, this_ptr=0x0, return_value_used=0, oper=2) at ldap.c:1364 #4 0xdee2f5e1 in zif_ldap_modify (ht=3, return_value=0x81f5d0c, this_ptr=0x0, return_value_used=0) at ldap.c:1399 #5 0xdedd51b9 in execute (op_array=0x8195fc0) at ./zend_execute.c:1590 #6 0xdedd540c in execute (op_array=0x819296c) at ./zend_execute.c:1630 #7 0xdede66b0 in zend_execute_scripts (type=8, retval=0x0, file_count=3) at zend.c:814 #8 0xdedf98c1 in php_execute_script (primary_file=0x8047808) at main.c:1307 #9 0xdedf3d4a in apache_php_module_main (r=0x818a750, display_source_mode=0) at sapi_apache.c:90 #10 0xdedf4f00 in send_php (r=0x818a750, display_source_mode=0, filename=0x818c338 "/usr/local/apache/htdocs/mail/mailforward.php") at mod_php4.c:575 #11 0xdedf4f73 in send_parsed_php (r=0x818a750) at mod_php4.c:590 #12 0x8088945 in ap_invoke_handler (r=0x818a750) at http_config.c:517 #13 0x809e794 in process_request_internal (r=0x818a750) at http_request.c:1308 #14 0x809e7fe in ap_process_request (r=0x818a750) at http_request.c:1324 ---Type <return> to continue, or q <return> to quit---q Quit (gdb) i sym Here is the final link stage in compiling PHP. Please note -lldap is supplied before -lclntsh, and thus OpenLDAP should resolve first, but apparently this is not the case: /bin/sh /home/majid/src/php-4.1.2/libtool --silent --mode=link gcc -I. -I/home/ majid/src/php-4.1.2/ -I/home/majid/src/php-4.1.2/main -I/home/majid/src/php-4.1. 2 -I/usr/local/ldap/include -I/export/home/oracle/rdbms/demo -I/export/home/orac le/network/public -Iexpat/xmltok -Iexpat/xmlparse -Iimap-4.7c/c-client -I/usr/lo cal/apache/include -I/home/majid/src/php-4.1.2/Zend -I/usr/local/include/freetyp e -I/usr/local/include -I/usr/local/ldap/include -I/usr/local/mysql/include/mysq l -I/export/home/oracle/rdbms/public -I/export/home/oracle/rdbms/demo -I/export/ home/oracle/network/public -I/home/majid/src/php-4.1.2/ext/xml/expat -D_POSIX_P THREAD_SEMANTICS -DSOLARIS2=280 -DMOD_SSL=208106 -DEAPI -DEAPI_MM -DUSE_EXPAT -I /home/majid/src/php-4.1.2/TSRM -g -DEAPI -prefer-pic -o libphp4.la -rpath /hom e/majid/src/php-4.1.2/libs -export-symbols /home/majid/src/php-4.1.2/sapi/apache /php.sym -avoid-version -L/usr/ucblib -L/usr/local/lib/gcc-lib/i386-pc-solaris2. 8/2.95.2 -L/usr/local/lib -L/usr/local/ldap/lib -L/usr/local/mysql/lib/mysql -L/ export/home/oracle/lib -R /usr/ucblib -R /usr/local/lib/gcc-lib/i386-pc-solaris 2.8/2.95.2 -R /usr/local/lib -R /usr/local/ldap/lib -R /usr/local/mysql/lib/mysq l -R /export/home/oracle/lib stub.lo Zend/libZend.la sapi/apache/libsapi.la m ain/libmain.la regex/libregex.la ext/gd/libgd.la ext/imap/libimap.la ext/ldap/ libldap.la ext/mhash/libmhash.la ext/mysql/libmysql.la ext/oci8/liboci8.la ext/p cre/libpcre.la ext/posix/libposix.la ext/session/libsession.la ext/standard/libs tandard.la ext/xml/libxml.la TSRM/libtsrm.la -L/usr/local/ldap/lib -L/usr/local /lib -lgd -lmhash -llber -lldap -L/export/home/oracle/lib -lclient8 -lclntsh -L/ usr/local/mysql/lib/mysql -lmysqlclient -lpam -limap -ldl -lm -lthread -laio -le lf -ldl -lgen -lnsl -lsocket -lmysqlclient -lmhash -lldap -llber -lcrypt -lpam - lgd -lttf -lcrypt -lresolv -lresolv -lresolv -lm -ldl -lnsl -lsocket -lsocket -l gcc -lcrypt -lclntsh -- Edit bug report at http://bugs.php.net/?id=16005&edit=1 -- Fixed in CVS: http://bugs.php.net/fix.php?id=16005&r=fixedcvs Fixed in release: http://bugs.php.net/fix.php?id=16005&r=alreadyfixed Need backtrace: http://bugs.php.net/fix.php?id=16005&r=needtrace Try newer version: http://bugs.php.net/fix.php?id=16005&r=oldversion Not developer issue: http://bugs.php.net/fix.php?id=16005&r=support Expected behavior: http://bugs.php.net/fix.php?id=16005&r=notwrong Not enough info: http://bugs.php.net/fix.php?id=16005&r=notenoughinfo Submitted twice: http://bugs.php.net/fix.php?id=16005&r=submittedtwice