Skip to content

Memory leak in php_openssl_enable_crypto() / php_openssl_init_server_reneg_limit() #22081

Description

@arnaud-lb

Description

php_openssl_enable_crypto() may call php_openssl_init_server_reneg_limit(), which allocates sslsock->reneg. If SSL_accept() results in EAGAIN, sslsock->reneg leaks.

https://github.com/php/php-src/actions/runs/25240631798/job/74015814015#step:11:2925:

Direct leak of 16896 byte(s) in 528 object(s) allocated from:
      #0 0x7f2e35afd9c7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
      #1 0x5617fef331f0 in tracked_malloc /home/runner/work/php-src/php-src/Zend/zend_alloc.c:3016
      #2 0x5617fef30871 in _emalloc /home/runner/work/php-src/php-src/Zend/zend_alloc.c:2778
      #3 0x5617fc01a0b1 in php_openssl_init_server_reneg_limit /home/runner/work/php-src/php-src/ext/openssl/xp_ssl.c:1172
      #4 0x5617fc029a38 in php_openssl_enable_crypto /home/runner/work/php-src/php-src/ext/openssl/xp_ssl.c:2274
      #5 0x5617fc033b6e in php_openssl_sockop_set_option /home/runner/work/php-src/php-src/ext/openssl/xp_ssl.c:2987
      #6 0x5617fec5bc4b in _php_stream_set_option /home/runner/work/php-src/php-src/main/streams/streams.c:1518
      #7 0x5617fec6b97b in php_stream_xport_crypto_enable /home/runner/work/php-src/php-src/main/streams/transports.c:385
      #8 0x5617fe4aa0c6 in zif_stream_socket_enable_crypto /home/runner/work/php-src/php-src/ext/standard/streamsfuncs.c:1524
      #9 0x5617ff1b0ba5 in ZEND_DO_ICALL_SPEC_RETVAL_USED_HANDLER /home/runner/work/php-src/php-src/Zend/zend_vm_execute.h:1387
      #10 0x5617ff494066 in execute_ex /home/runner/work/php-src/php-src/Zend/zend_vm_execute.h:110392
      #11 0x5617ff1380c9 in zend_call_function /home/runner/work/php-src/php-src/Zend/zend_execute_API.c:1004
      #12 0x5617ff4c5660 in zend_fiber_execute /home/runner/work/php-src/php-src/Zend/zend_fibers.c:608
      #13 0x5617ff4c1efd in zend_fiber_trampoline /home/runner/work/php-src/php-src/Zend/zend_fibers.c:391

  Direct leak of 32 byte(s) in 1 object(s) allocated from:
      #0 0x7f2e35afd9c7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
      #1 0x5617fef331f0 in tracked_malloc /home/runner/work/php-src/php-src/Zend/zend_alloc.c:3016
      #2 0x5617fef30871 in _emalloc /home/runner/work/php-src/php-src/Zend/zend_alloc.c:2778
      #3 0x5617fc01a0b1 in php_openssl_init_server_reneg_limit /home/runner/work/php-src/php-src/ext/openssl/xp_ssl.c:1172
      #4 0x5617fc029a38 in php_openssl_enable_crypto /home/runner/work/php-src/php-src/ext/openssl/xp_ssl.c:2274
      #5 0x5617fc033b6e in php_openssl_sockop_set_option /home/runner/work/php-src/php-src/ext/openssl/xp_ssl.c:2987
      #6 0x5617fec5bc4b in _php_stream_set_option /home/runner/work/php-src/php-src/main/streams/streams.c:1518
      #7 0x5617fec6b97b in php_stream_xport_crypto_enable /home/runner/work/php-src/php-src/main/streams/transports.c:385
      #8 0x5617fe4aa0c6 in zif_stream_socket_enable_crypto /home/runner/work/php-src/php-src/ext/standard/streamsfuncs.c:1524
      #9 0x5617ff1b0ba5 in ZEND_DO_ICALL_SPEC_RETVAL_USED_HANDLER /home/runner/work/php-src/php-src/Zend/zend_vm_execute.h:1387
      #10 0x5617fd6a2ff1 in zend_jit_trace_execute /home/runner/work/php-src/php-src/ext/opcache/jit/zend_jit_vm_helpers.c:1069
      #11 0x5617fd974270 in zend_jit_trace_hot_root ext/opcache/jit/zend_jit_trace.c:8185
      #12 0x7f2deb888485  (<unknown module>)
      #13 0x5617ff1380c9 in zend_call_function /home/runner/work/php-src/php-src/Zend/zend_execute_API.c:1004
      #14 0x5617ff4c5660 in zend_fiber_execute /home/runner/work/php-src/php-src/Zend/zend_fibers.c:608
      #15 0x5617ff4c1efd in zend_fiber_trampoline /home/runner/work/php-src/php-src/Zend/zend_fibers.c:391

PHP Version

master (b1242c32bcaff0b4766eaca7e1846c80687f7006)

Operating System

No response

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions