pajoye          Sun Nov 16 23:12:38 2008 UTC

  Added files:                 (Branch: PHP_5_2)
    /php-src/ext/openssl/tests  bug46127.pem bug46127.phpt 

  Modified files:              
    /php-src/ext/openssl        xp_ssl.c 
  Log:
  - MFH: manage references of stream context properly (Tony)
  - add tests for bug #46127
  
  
http://cvs.php.net/viewvc.cgi/php-src/ext/openssl/xp_ssl.c?r1=1.22.2.3.2.13&r2=1.22.2.3.2.14&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.13 
php-src/ext/openssl/xp_ssl.c:1.22.2.3.2.14
--- php-src/ext/openssl/xp_ssl.c:1.22.2.3.2.13  Tue Oct  7 14:35:04 2008
+++ php-src/ext/openssl/xp_ssl.c        Sun Nov 16 23:12:38 2008
@@ -16,7 +16,7 @@
   +----------------------------------------------------------------------+
 */
 
-/* $Id: xp_ssl.c,v 1.22.2.3.2.13 2008/10/07 14:35:04 iliaa Exp $ */
+/* $Id: xp_ssl.c,v 1.22.2.3.2.14 2008/11/16 23:12:38 pajoye Exp $ */
 
 #include "php.h"
 #include "ext/standard/file.h"
@@ -557,6 +557,9 @@
                        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

Reply via email to