pajoye Sun Nov 16 23:14:12 2008 UTC Added files: (Branch: PHP_5_3) /php-src/ext/openssl/tests bug46127.pem bug46127.phpt
Modified files: /php-src/ext/openssl xp_ssl.c Log: - MFH: #46127, php_openssl_tcp_sockop_accept forgets to set context on accepted stream http://cvs.php.net/viewvc.cgi/php-src/ext/openssl/xp_ssl.c?r1=1.22.2.3.2.9.2.7&r2=1.22.2.3.2.9.2.8&diff_format=u Index: php-src/ext/openssl/xp_ssl.c diff -u php-src/ext/openssl/xp_ssl.c:1.22.2.3.2.9.2.7 php-src/ext/openssl/xp_ssl.c:1.22.2.3.2.9.2.8 --- php-src/ext/openssl/xp_ssl.c:1.22.2.3.2.9.2.7 Thu Sep 11 23:56:43 2008 +++ php-src/ext/openssl/xp_ssl.c Sun Nov 16 23:14:12 2008 @@ -16,7 +16,7 @@ +----------------------------------------------------------------------+ */ -/* $Id: xp_ssl.c,v 1.22.2.3.2.9.2.7 2008/09/11 23:56:43 iliaa Exp $ */ +/* $Id: xp_ssl.c,v 1.22.2.3.2.9.2.8 2008/11/16 23:14:12 pajoye Exp $ */ #include "php.h" #include "ext/standard/file.h" @@ -556,6 +556,7 @@ xparam->outputs.client = php_stream_alloc_rel(stream->ops, clisockdata, NULL, "r+"); if (xparam->outputs.client) { + xparam->outputs.client->context = stream->context; if (stream->context) { zend_list_addref(stream->context->rsrc_id); } http://cvs.php.net/viewvc.cgi/php-src/ext/openssl/tests/bug46127.pem?view=markup&rev=1.1 Index: php-src/ext/openssl/tests/bug46127.pem +++ php-src/ext/openssl/tests/bug46127.pem -----BEGIN CERTIFICATE----- MIIC5jCCAk+gAwIBAgIBADANBgkqhkiG9w0BAQQFADBcMQswCQYDVQQGEwJBVTET MBEGA1UECBMKUXVlZW5zbGFuZDEaMBgGA1UEChMRQ3J5cHRTb2Z0IFB0eSBMdGQx HDAaBgNVBAMTE1Rlc3QgUENBICgxMDI0IGJpdCkwHhcNOTkxMjAyMjEzNTQ4WhcN MDUwNzExMjEzNTQ4WjBcMQswCQYDVQQGEwJBVTETMBEGA1UECBMKUXVlZW5zbGFu ZDEaMBgGA1UEChMRQ3J5cHRTb2Z0IFB0eSBMdGQxHDAaBgNVBAMTE1Rlc3QgUENB ICgxMDI0IGJpdCkwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAJ2haT/f5Zwy V+MiuSDjSR62adBoSiBB7Usty44lXqsp9RICw+DCCxpsn/CfxPEDXLLd4olsWXc6 JRcxGynbYmnzk+Z6aIPPJQhK3CTvaqGnWKZsA1m+WaUIUqJCuNTK4N+7hMAGaf6S S3e9HVgEQ4a34gXJ7VQFVIBNV1EnZRWHAgMBAAGjgbcwgbQwHQYDVR0OBBYEFE0R aEcrj18q1dw+G6nJbsTWR213MIGEBgNVHSMEfTB7gBRNEWhHK49fKtXcPhupyW7E 1kdtd6FgpF4wXDELMAkGA1UEBhMCQVUxEzARBgNVBAgTClF1ZWVuc2xhbmQxGjAY BgNVBAoTEUNyeXB0U29mdCBQdHkgTHRkMRwwGgYDVQQDExNUZXN0IFBDQSAoMTAy NCBiaXQpggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEEBQADgYEAUa8B3pho +Mvxeq9HsEzJxHIFQla05S5J/e/V+DQTYoKiRFchKPrDAdrzYSEvP3h4QJEtsNqQ JfOxg5M42uLFq7aPGWkF6ZZqZsYS+zA9IVT14g7gNA6Ne+5QtJqQtH9HA24st0T0 Tga/lZ9M2ovImovaxSL/kRHbpCWcqWVxpOw= -----END CERTIFICATE----- -----BEGIN RSA PRIVATE KEY----- MIICXAIBAAKBgQCdoWk/3+WcMlfjIrkg40ketmnQaEogQe1LLcuOJV6rKfUSAsPg wgsabJ/wn8TxA1yy3eKJbFl3OiUXMRsp22Jp85PmemiDzyUIStwk72qhp1imbANZ vlmlCFKiQrjUyuDfu4TABmn+kkt3vR1YBEOGt+IFye1UBVSATVdRJ2UVhwIDAQAB AoGAba4fTtuap5l7/8ZsbE7Z1O32KJY4ZcOZukLOLUUhXxXduT+FTgGWujc0/rgc z9qYCLlNZHOouMYTgtSfYvuMuLZ11VIt0GYH+nRioLShE59Yy+zCRyC+gPigS1kz xvo14AsOIPYV14Tk/SsHyq6E0eTk7VzaIE197giiINUERPECQQDSKmtPTh/lRKw7 HSZSM0I1mFWn/1zqrAbontRQY5w98QWIOe5qmzYyFbPXYT3d9BzlsMyhgiRNoBbD yvohSHXJAkEAwAHx6ezAZeWWzD5yXD36nyjpkVCw7Tk7TSmOceLJMWt1QcrCfqlS xA5jjpQ6Z8suU5DdtWAryM2sAir1WisYzwJAd6Zcx56jvAQ3xcPXsE6scBTVFzrj 7FqZ6E+cclPzfLQ+QQsyOBE7bpI6e/FJppY26XGZXo3YGzV8IGXrt40oOQJALETG h86EFXo3qGOFbmsDy4pdP5nBERCu8X1xUCSfintiD4c2DInxgS5oGclnJeMcjTvL QjQoJCX3UJCi/OUO1QJBAKgcDHWjMvt+l1pjJBsSEZ0HX9AAIIVx0RQmbFGS+F2Q hhu5l77WnnZOQ9vvhV5u7NPCUF9nhU3jh60qWWO8mkc= -----END RSA PRIVATE KEY----- http://cvs.php.net/viewvc.cgi/php-src/ext/openssl/tests/bug46127.phpt?view=markup&rev=1.1 Index: php-src/ext/openssl/tests/bug46127.phpt +++ php-src/ext/openssl/tests/bug46127.phpt --TEST-- openssl_sign/verify: accept different algos --SKIPIF-- <?php if (!extension_loaded("openssl")) die("skip"); if (OPENSSL_VERSION_NUMBER < 0x009070af) die("skip"); ?> --FILE-- <?php function ssl_server($port) { $pem = dirname(__FILE__) . '/bug46127.pem'; $ssl = array( 'verify_peer' => false, 'allow_self_signed' => true, 'local_cert' => $pem, // 'passphrase' => '', ); $context = stream_context_create(array('ssl' => $ssl)); $sock = stream_socket_server('ssl://127.0.0.1:'.$port, $errno, $errstr, STREAM_SERVER_BIND | STREAM_SERVER_LISTEN, $context); if (!$sock) return false; $link = stream_socket_accept($sock); if (!$link) return false; // bad link? fputs($link, "Sending bug 46127\n"); // close stuff fclose($link); fclose($sock); exit; } echo "Running bug46127\n"; $port = rand(15000, 32000); $pid = pcntl_fork(); if ($pid == 0) { // child ssl_server($port); exit; } // client or failed sleep(1); $sock = fsockopen('ssl://127.0.0.1', $port, $errno, $errstr); if (!$sock) exit; echo fgets($sock); pcntl_waitpid($pid, $status); ?> --EXPECTF-- Running bug46127 Sending bug 46127 -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php