summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAntony Dovgal <tony2001@php.net>2006-03-20 23:03:11 +0000
committerAntony Dovgal <tony2001@php.net>2006-03-20 23:03:11 +0000
commitedbfb9c2c7786f627227b8abeec1fd283c091317 (patch)
treedcc468e18f125133cb731d95510adaca5348dbf2
parent6aaf510bf079589781cbce567521129cc28108da (diff)
downloadphp-git-edbfb9c2c7786f627227b8abeec1fd283c091317.tar.gz
fix #36808 (syslog ident becomes garbage between requests)
-rw-r--r--NEWS1
-rw-r--r--ext/standard/basic_functions.c1
-rw-r--r--ext/standard/php_ext_syslog.h1
-rw-r--r--ext/standard/syslog.c19
4 files changed, 15 insertions, 7 deletions
diff --git a/NEWS b/NEWS
index 85021b244e..bd677afa71 100644
--- a/NEWS
+++ b/NEWS
@@ -10,6 +10,7 @@ PHP NEWS
(also fixes bug #36764). (Tony)
- Removed the E_STRICT deprecation notice from "var". (Ilia)
- Fixed debug_zval_dump() to support private and protected members. (Dmitry)
+- FIxed bug #36808 (syslog ident becomes garbage between requests). (Tony)
- Fixed bug #36756 (DOMDocument::removeChild corrupts node). (Rob)
- Fixed bug #36743 (In a class extending XMLReader array properties are not
writable). (Tony)
diff --git a/ext/standard/basic_functions.c b/ext/standard/basic_functions.c
index 479af7e931..9943da6f80 100644
--- a/ext/standard/basic_functions.c
+++ b/ext/standard/basic_functions.c
@@ -1150,6 +1150,7 @@ PHP_MSHUTDOWN_FUNCTION(basic)
PHP_MSHUTDOWN(url_scanner_ex)(SHUTDOWN_FUNC_ARGS_PASSTHRU);
PHP_MSHUTDOWN(file)(SHUTDOWN_FUNC_ARGS_PASSTHRU);
PHP_MSHUTDOWN(standard_filters)(SHUTDOWN_FUNC_ARGS_PASSTHRU);
+ PHP_MSHUTDOWN(syslog)(INIT_FUNC_ARGS_PASSTHRU);
#if defined(HAVE_LOCALECONV) && defined(ZTS)
PHP_MSHUTDOWN(localeconv)(SHUTDOWN_FUNC_ARGS_PASSTHRU);
#endif
diff --git a/ext/standard/php_ext_syslog.h b/ext/standard/php_ext_syslog.h
index 86b9704a4d..25b0e8424d 100644
--- a/ext/standard/php_ext_syslog.h
+++ b/ext/standard/php_ext_syslog.h
@@ -28,6 +28,7 @@
PHP_MINIT_FUNCTION(syslog);
PHP_RINIT_FUNCTION(syslog);
PHP_RSHUTDOWN_FUNCTION(syslog);
+PHP_MSHUTDOWN_FUNCTION(syslog);
PHP_FUNCTION(openlog);
PHP_FUNCTION(syslog);
diff --git a/ext/standard/syslog.c b/ext/standard/syslog.c
index bde09e588a..b3057039e8 100644
--- a/ext/standard/syslog.c
+++ b/ext/standard/syslog.c
@@ -97,6 +97,7 @@ PHP_MINIT_FUNCTION(syslog)
/* AIX doesn't have LOG_PERROR */
REGISTER_LONG_CONSTANT("LOG_PERROR", LOG_PERROR, CONST_CS | CONST_PERSISTENT); /*log to stderr*/
#endif
+ BG(syslog_device)=NULL;
return SUCCESS;
}
@@ -109,22 +110,26 @@ PHP_RINIT_FUNCTION(syslog)
} else {
BG(syslog_started)=0;
}
- BG(syslog_device)=NULL;
return SUCCESS;
}
PHP_RSHUTDOWN_FUNCTION(syslog)
{
- if (BG(syslog_device)) {
- efree(BG(syslog_device));
- }
#ifdef PHP_WIN32
closelog();
#endif
return SUCCESS;
}
+PHP_MSHUTDOWN_FUNCTION(syslog)
+{
+ if (BG(syslog_device)) {
+ free(BG(syslog_device));
+ }
+ return SUCCESS;
+}
+
/* {{{ start_syslog
*/
static void start_syslog(TSRMLS_D)
@@ -224,9 +229,9 @@ PHP_FUNCTION(openlog)
return;
}
if (BG(syslog_device)) {
- efree(BG(syslog_device));
+ free(BG(syslog_device));
}
- BG(syslog_device) = estrndup(ident, ident_len);
+ BG(syslog_device) = zend_strndup(ident, ident_len);
openlog(BG(syslog_device), option, facility);
RETURN_TRUE;
}
@@ -242,7 +247,7 @@ PHP_FUNCTION(closelog)
closelog();
if (BG(syslog_device)) {
- efree(BG(syslog_device));
+ free(BG(syslog_device));
BG(syslog_device)=NULL;
}
RETURN_TRUE;