Browse Source

Fixed bug #38543 (shutdown_executor() may segfault when memory_limit is too low).

PECL_OPENSSL
Dmitry Stogov 20 years ago
parent
commit
f7e99a2162
  1. 2
      NEWS
  2. 11
      sapi/cli/php_cli.c

2
NEWS

@ -1,6 +1,8 @@
PHP NEWS PHP NEWS
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?? Sep 2006, PHP 5.2.0 ?? Sep 2006, PHP 5.2.0
- Fixed bug #38543 (shutdown_executor() may segfault when memory_limit is too
low). (Dmitry)
- Fixed bug #38535 (memory corruption in pdo_pgsql driver on error retrieval - Fixed bug #38535 (memory corruption in pdo_pgsql driver on error retrieval
inside a failed query executed via query() method). (Ilia) inside a failed query executed via query() method). (Ilia)
- Fixed bug #38524 (strptime() does not initialize the internal date storage - Fixed bug #38524 (strptime() does not initialize the internal date storage

11
sapi/cli/php_cli.c

@ -585,6 +585,7 @@ int main(int argc, char *argv[])
char *script_file=NULL; char *script_file=NULL;
int interactive=0; int interactive=0;
int module_started = 0; int module_started = 0;
int request_started = 0;
int lineno = 0; int lineno = 0;
char *exec_direct=NULL, *exec_run=NULL, *exec_begin=NULL, *exec_end=NULL; char *exec_direct=NULL, *exec_run=NULL, *exec_begin=NULL, *exec_end=NULL;
const char *param_error=NULL; const char *param_error=NULL;
@ -711,6 +712,7 @@ int main(int argc, char *argv[])
if (php_request_startup(TSRMLS_C)==FAILURE) { if (php_request_startup(TSRMLS_C)==FAILURE) {
goto err; goto err;
} }
request_started = 1;
php_cli_usage(argv[0]); php_cli_usage(argv[0]);
php_end_ob_buffers(1 TSRMLS_CC); php_end_ob_buffers(1 TSRMLS_CC);
exit_status=0; exit_status=0;
@ -720,6 +722,7 @@ int main(int argc, char *argv[])
if (php_request_startup(TSRMLS_C)==FAILURE) { if (php_request_startup(TSRMLS_C)==FAILURE) {
goto err; goto err;
} }
request_started = 1;
php_print_info(0xFFFFFFFF TSRMLS_CC); php_print_info(0xFFFFFFFF TSRMLS_CC);
php_end_ob_buffers(1 TSRMLS_CC); php_end_ob_buffers(1 TSRMLS_CC);
exit_status=0; exit_status=0;
@ -729,6 +732,7 @@ int main(int argc, char *argv[])
if (php_request_startup(TSRMLS_C)==FAILURE) { if (php_request_startup(TSRMLS_C)==FAILURE) {
goto err; goto err;
} }
request_started = 1;
php_printf("[PHP Modules]\n"); php_printf("[PHP Modules]\n");
print_modules(TSRMLS_C); print_modules(TSRMLS_C);
php_printf("\n[Zend Modules]\n"); php_printf("\n[Zend Modules]\n");
@ -743,6 +747,7 @@ int main(int argc, char *argv[])
goto err; goto err;
} }
request_started = 1;
php_printf("PHP %s (%s) (built: %s %s) %s\nCopyright (c) 1997-2006 The PHP Group\n%s", php_printf("PHP %s (%s) (built: %s %s) %s\nCopyright (c) 1997-2006 The PHP Group\n%s",
PHP_VERSION, sapi_module.name, __DATE__, __TIME__, PHP_VERSION, sapi_module.name, __DATE__, __TIME__,
#if ZEND_DEBUG && defined(HAVE_GCOV) #if ZEND_DEBUG && defined(HAVE_GCOV)
@ -993,10 +998,10 @@ int main(int argc, char *argv[])
if (php_request_startup(TSRMLS_C)==FAILURE) { if (php_request_startup(TSRMLS_C)==FAILURE) {
*arg_excp = arg_free; *arg_excp = arg_free;
fclose(file_handle.handle.fp); fclose(file_handle.handle.fp);
php_request_shutdown((void *) 0);
PUTS("Could not startup.\n"); PUTS("Could not startup.\n");
goto err; goto err;
} }
request_started = 1;
CG(start_lineno) = lineno; CG(start_lineno) = lineno;
*arg_excp = arg_free; /* reconstuct argv */ *arg_excp = arg_free; /* reconstuct argv */
@ -1247,7 +1252,9 @@ int main(int argc, char *argv[])
} zend_end_try(); } zend_end_try();
out: out:
php_request_shutdown((void *) 0);
if (request_started) {
php_request_shutdown((void *) 0);
}
if (exit_status == 0) { if (exit_status == 0) {
exit_status = EG(exit_status); exit_status = EG(exit_status);
} }

Loading…
Cancel
Save