ID: 21829 User updated by: [EMAIL PROTECTED] Reported By: [EMAIL PROTECTED] Status: Open Bug Type: Sockets related Operating System: mandrake 8.2, 2.4.18-8.1mdk PHP Version: 4.3.0 New Comment:
I found the cause of this. Somehow in my exported INCLUDE -I/usr/include had come before -I/usr/local/bind/include, and the DNS structures were taken from the wrong header files. After setting the BIND include files to be searched first and recompiling, this appears to be resolved. Previous Comments: ------------------------------------------------------------------------ [2003-01-22 19:42:25] [EMAIL PROTECTED] Compiling 4.3.0 and php4-STABLE-200301222030 on 3 servers, one works and two segfault. The simple script below illustrates the problem; on one server it runs, on two it faults. The three servers are essentially identical; php.ini on all are identical. Build details and gdb backtrace are below. I also have fopen("http://") failing the same way, not surprising. The failure appears to be in DNS resolution. Glad to supply more info as needed. <?php $fd = fsockopen("www.yahoo.com", 80, &$errno, &$errstr); if( !$fd ) { echo "yahoo not available"; exit(); } else { fputs($fd,"GET / HTTP/1.0\r\n\r\n"); fputs($fd,"Host: $host\r\n\r\n"); while (!feof($fd)) { echo fread($fd,16000); } fclose($fd); } ?> ================================================= php was built with the following options: ./configure \ --with-gd \ --with-mysql=/usr \ --with-exec-dir=/var/lib/php \ --with-java=/usr/local/jdk \ --enable-unified-odbc \ --enable-safe-mode=yes \ --enable-track-vars \ --enable-ftp \ --with-expat-dir=/usr \ --with-xml \ --with-dom=/usr \ --with-dom-xslt=/usr \ --with-dom-exslt=/usr \ --enable-xslt \ --with-xslt-sablot=/usr \ --with-sablot-js=/usr \ --with-zlib \ --with-ldap \ --with-openssl \ --disable-debug \ --disable-debugger \ --with-config-file-path=/etc/httpd/conf The bind version on all servers is 8.3.3, patched with ISC patches prior to 8.3.4 release from recent bugs. ================================================= gdb run commands: gdb stacktrace:(gdb) set args fsock_yahoo.php (gdb) run Starting program: /usr/local/bin/php fsock_yahoo.php [New Thread 1024 (LWP 3639)] Program received signal SIGSEGV, Segmentation fault. [Switching to Thread 1024 (LWP 3639)] 0x081335d5 in php_network_getaddresses (host=0x831c59c "www.yahoo.com", sal=0xbfffc634) at /usr/local/php4/main/network.c:215 215 *(struct sockaddr_in *)*sap = #0 0x081335d5 in php_network_getaddresses (host=0x831c59c "www.yahoo.com", sal=0xbfffc634) at /usr/local/php4/main/network.c:215 #1 0x08133810 in php_hostconnect (host=0x831c59c "www.yahoo.com", port=80, socktype=1, timeout=0xbfffc6b0) at /usr/local/php4/main/network.c:410 #2 0x08133b5f in _php_stream_sock_open_host (host=0x831c59c "www.yahoo.com", port=80, socktype=1, timeout=0xbfffc6b0, persistent_id=0x0) at /usr/local/php4/main/network.c:619 #3 0x080ee025 in php_fsockopen_stream (ht=4, return_value=0x831c5dc, this_ptr=0x0, return_value_used=1, persistent=0) at /usr/local/php4/ext/standard/fsock.c:218 #4 0x080ee1ed in zif_fsockopen (ht=4, return_value=0x831c5dc, this_ptr=0x0, return_value_used=1) at /usr/local/php4/ext/standard/fsock.c:278 #5 0x0815d2d2 in execute (op_array=0x8322504) at /usr/local/php4/Zend/zend_execute.c:1596 #6 0x0814cdf3 in zend_execute_scripts (type=8, retval=0x0, file_count=3) at /usr/local/php4/Zend/zend.c:864 #7 0x0812992b in php_execute_script (primary_file=0xbffff560) at /usr/local/php4/main/main.c:1573 #8 0x08164488 in main (argc=2, argv=0xbffff604) at /usr/local/php4/sapi/cli/php_cli.c:746 #9 0x405be280 in __libc_start_main () from /lib/libc.so.6 ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=21829&edit=1