|
php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login |
PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits
[2016-09-13 16:17 UTC] bukka@php.net
-Status: Open
+Status: Assigned
-Assigned To:
+Assigned To: bukka
[2016-09-13 16:17 UTC] bukka@php.net
[2016-09-13 17:15 UTC] bukka@php.net
[2016-09-13 17:15 UTC] bukka@php.net
-Status: Assigned
+Status: Closed
[2016-09-13 17:26 UTC] bukka@php.net
[2016-09-13 17:28 UTC] bukka@php.net
[2016-09-13 17:29 UTC] bukka@php.net
[2016-09-29 15:25 UTC] spam2 at rhsoft dot net
[2016-10-17 10:08 UTC] bwoebi@php.net
|
|||||||||||||||||||||||||||
Copyright © 2001-2025 The PHP GroupAll rights reserved. |
Last updated: Fri Oct 24 02:00:01 2025 UTC |
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