From 6d97609a315453f1616c91524e6d565d15fda3a5 Mon Sep 17 00:00:00 2001 From: Sascha Schumann Date: Fri, 26 Nov 1999 19:01:26 +0000 Subject: [PATCH] Avoid fd leak which appears when using ZEND_HANDLE_FILENAME --- sapi/aolserver/aolserver.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/sapi/aolserver/aolserver.c b/sapi/aolserver/aolserver.c index e6b61e802c..7a3ba47430 100644 --- a/sapi/aolserver/aolserver.c +++ b/sapi/aolserver/aolserver.c @@ -383,20 +383,28 @@ static int php_ns_module_main(NSLS_D SLS_DC) { zend_file_handle file_handle; + int fd; CLS_FETCH(); ELS_FETCH(); PLS_FETCH(); - file_handle.type = ZEND_HANDLE_FILENAME; + file_handle.type = ZEND_HANDLE_FD; file_handle.filename = SG(request_info).path_translated; + file_handle.handle.fd = fd = open(SG(request_info).path_translated, O_RDONLY); + if (fd == -1) { + return NS_ERROR; + } - if(php_request_startup(CLS_C ELS_CC PLS_CC SLS_CC) == FAILURE) { + if (php_request_startup(CLS_C ELS_CC PLS_CC SLS_CC) == FAILURE) { + close(fd); return NS_ERROR; } php_ns_hash_environment(NSLS_C CLS_CC ELS_CC PLS_CC SLS_CC); php_execute_script(&file_handle CLS_CC ELS_CC PLS_CC); php_request_shutdown(NULL); + close(fd); + return NS_OK; } -- 2.40.0