]> granicus.if.org Git - php/commitdiff
- Fixed NULL pointer dereference in stream_socket_enable_crypto, case when
authorMateusz Kocielski <shm@php.net>
Sat, 12 Nov 2011 10:36:55 +0000 (10:36 +0000)
committerMateusz Kocielski <shm@php.net>
Sat, 12 Nov 2011 10:36:55 +0000 (10:36 +0000)
  ssl_handle of session_stream is not initialized.

ext/openssl/xp_ssl.c

index e4b101ef6adcf6f3109e872d372ccf5ef097dc55..73ee0f3ec51c235641a680740d0483854ef3d181 100644 (file)
@@ -406,6 +406,8 @@ static inline int php_openssl_setup_crypto(php_stream *stream,
        if (cparam->inputs.session) {
                if (cparam->inputs.session->ops != &php_openssl_socket_ops) {
                        php_error_docref(NULL TSRMLS_CC, E_WARNING, "supplied session stream must be an SSL enabled stream");
+               } else if (((php_openssl_netstream_data_t*)cparam->inputs.session->abstract)->ssl_handle == NULL) {
+                       php_error_docref(NULL TSRMLS_CC, E_WARNING, "supplied SSL session stream is not initialized");
                } else {
                        SSL_copy_session_id(sslsock->ssl_handle, ((php_openssl_netstream_data_t*)cparam->inputs.session->abstract)->ssl_handle);
                }