Bug #73072 [Opn->Asn]: Invalid path SNI_server_certs causes segfault
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: Open
+Status: Assigned
Type: Bug
Package: OpenSSL related
Operating System: All
PHP Version: 5.6.25
-Assigned To:
+Assigned To: bukka
Block user comment: N
Private report: N
Previous Comments:
------------------------------------------------------------------------
[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
Thread (5 messages)