Bug #73072 [Asn->Csd]: Invalid path SNI_server_certs causes segfault

From: Date: Tue, 13 Sep 2016 17:15:57 +0000
Subject: Bug #73072 [Asn->Csd]: Invalid path SNI_server_certs causes segfault
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-204012@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=73072&edit=1 ID: 73072 Updated by: bukka@php.net Reported by: bukka@php.net Summary: Invalid path SNI_server_certs causes segfault -Status: Assigned +Status: Closed Type: Bug Package: OpenSSL related Operating System: All PHP Version: 5.6.25 Assigned To: bukka Block user comment: N Private report: N New Comment: Automatic comment on behalf of bukka Revision: http://git.php.net/?p=php-src.git;a=commit;h=05baa927277c820de4deee0991c24c7f4c545105 Log: Fix bug #73072 (Invalid path SNI_server_certs causes segfault) Previous Comments: ------------------------------------------------------------------------ [2016-09-13 16:17:55] bukka@php.net The script above causes segfault once a client connects into it... ------------------------------------------------------------------------ [2016-09-13 16:16:49] bukka@php.net Description: ------------ If the SNI_server_certs stream ssl option contains an invalid path, it causes segfault after the client connects. It is because the initializing loop is jumped off when error happens and keeps the sni_certs unitialized which causes later segfault when they are freed. Test script: --------------- $flags = STREAM_SERVER_BIND|STREAM_SERVER_LISTEN; $ctx = stream_context_create(['ssl' => [ 'local_cert' => __DIR__ . '/domain1.pem', 'SNI_server_certs' => [ "domain1.com" => __DIR__ . "/sni_server_domain1.pem", "domain2.com" => __DIR__ . "/unknown", ] ]]); $server = stream_socket_server('tls://127.0.0.1:64321', $errno, $errstr, $flags, $ctx); for ($i=0; $i < 3; $i++) { @stream_socket_accept($server, 3); } Expected result: ---------------- Warning: failed setting local cert chain file `%s'; file not found Actual result: -------------- segfault ------------------------------------------------------------------------ -- Edit this bug report at https://bugs.php.net/bug.php?id=73072&edit=1

« previous php.bugs (#204012) next »