com php-src: Fixed bug #67715 (php-milter does not build and crashes randomly).: NEWS sapi/milter/Makefile.frag sapi/milter/config.m4
sapi/milter/php_milter.c
| From: | Michael Wallner | Date: | Wed, 30 Jul 2014 18:12:13 +0000 |
| Subject: | com php-src: Fixed bug #67715 (php-milter does not build and crashes randomly).: NEWS sapi/milter/Makefile.frag sapi/milter/config.m4 sapi/milter/php_milter.c |
||
| Groups: | php.cvs | ||
| Request: | Send a blank email to php-cvs+get-79677@lists.php.net to get a copy of this message | ||
Commit: 12b2127b72543710590887d8bcf26be9e02bcc71
Author: Michael Wallner <mike@php.net> Wed, 30 Jul 2014 20:12:13 +0200
Parents: 8b9719d8b90c361fe56c3b6285676bc74fdf90c3
Branches: PHP-5.4 PHP-5.5 PHP-5.6 master
Link: http://git.php.net/?p=php-src.git;a=commitdiff;h=12b2127b72543710590887d8bcf26be9e02bcc71
Log:
Fixed bug #67715 (php-milter does not build and crashes randomly).
Bugs:
https://bugs.php.net/67715
Changed paths:
M NEWS
M sapi/milter/Makefile..frag
M sapi/milter/config.m4
M sapi/milter/php_milter.c
Diff:
diff --git a/NEWS b/NEWS
index a6520bc..9056bd5 100644
--- a/NEWS
+++ b/NEWS
@@ -5,6 +5,9 @@ PHP NEWS
- COM:
. Fixed missing type checks in com_event_sink (Yussuf Khalil, Stas).
+- Milter:
+ . Fixed bug #67715 (php-milter does not build and crashes randomly). (Mike)
+
- OpenSSL:
. Fixed missing type checks in OpenSSL options (Yussuf Khalil, Stas).
diff --git a/sapi/milter/Makefile.frag b/sapi/milter/Makefile.frag
index 26200a1..f193f56 100644
--- a/sapi/milter/Makefile.frag
+++ b/sapi/milter/Makefile.frag
@@ -1,8 +1,8 @@
milter: $(SAPI_MILTER_PATH)
-$(SAPI_MILTER_PATH): $(PHP_GLOBAL_OBJS) $(PHP_BINARY_OBJS) $(PHP_SAPI_OBJS)
+$(SAPI_MILTER_PATH): $(PHP_GLOBAL_OBJS) $(PHP_BINARY_OBJS) $(PHP_MILTER_OBJS)
$(BUILD_MILTER)
install-milter: $(SAPI_MILTER_PATH)
- @$(INSTALL) -m 0755 $(SAPI_MILTER_PATH) $(bindir)/php-milter
+ @$(INSTALL) -m 0755 $(SAPI_MILTER_PATH) $(INSTALL_ROOT)$(bindir)/php-milter
diff --git a/sapi/milter/config.m4 b/sapi/milter/config.m4
index 48c7a5d..db9c4c5 100644
--- a/sapi/milter/config.m4
+++ b/sapi/milter/config.m4
@@ -22,10 +22,10 @@ if test "$PHP_MILTER" != "no"; then
SAPI_MILTER_PATH=sapi/milter/php-milter
PHP_BUILD_THREAD_SAFE
- PHP_ADD_MAKEFILE_FRAGMENT($abs_srcdir/sapi/milter/Makefile..frag)
+
PHP_ADD_MAKEFILE_FRAGMENT($abs_srcdir/sapi/milter/Makefile.frag,$abs_srcdir/sapi/milter,sapi/milter)
PHP_SELECT_SAPI(milter, program, php_milter.c getopt.c,,'$(SAPI_MILTER_PATH)')
PHP_ADD_LIBRARY_WITH_PATH(milter, $MILTERPATH,)
- BUILD_MILTER="\$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN)
\$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS) \$(LDFLAGS) \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS)
\$(PHP_BINARY_OBJS) \$(PHP_MILTER_OBJS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o
\$(SAPI_MILTER_PATH)"
+ BUILD_MILTER="\$(LIBTOOL) --mode=link \$(CC) -export-dynamic \$(CFLAGS_CLEAN)
\$(EXTRA_CFLAGS) \$(EXTRA_LDFLAGS_PROGRAM) \$(LDFLAGS) \$(PHP_RPATHS) \$(PHP_GLOBAL_OBJS)
\$(PHP_BINARY_OBJS) \$(PHP_MILTER_OBJS) \$(EXTRA_LIBS) \$(ZEND_EXTRA_LIBS) -o
\$(SAPI_MILTER_PATH)"
PHP_SUBST(SAPI_MILTER_PATH)
PHP_SUBST(BUILD_MILTER)
fi
diff --git a/sapi/milter/php_milter.c b/sapi/milter/php_milter.c
index 432fd80..4a11707 100644
--- a/sapi/milter/php_milter.c
+++ b/sapi/milter/php_milter.c
@@ -525,6 +525,10 @@ static sfsistat mlfi_close(SMFICTX *ctx)
int status;
TSRMLS_FETCH();
+ if (!SG(sapi_started) && SUCCESS != php_request_startup(TSRMLS_C)) {
+ return ret;
+ }
+
/* call userland */
INIT_ZVAL(function_name);
ZVAL_STRING(&function_name, "milter_close", 0);
@@ -550,7 +554,7 @@ static sfsistat mlfi_close(SMFICTX *ctx)
/* {{{ Milter entry struct
*/
-struct smfiDesc smfilter = {
+static struct smfiDesc smfilter = {
"php-milter", /* filter name */
SMFI_VERSION, /* version code -- leave untouched */
0, /* flags */
@@ -1015,6 +1019,7 @@ int main(int argc, char *argv[])
tsrm_startup(1, 1, 0, NULL);
+ tsrm_ls = ts_resource(0);
sapi_startup(&milter_sapi_module);
while ((c=ap_php_getopt(argc, argv, OPTSTRING))!=-1) {
@@ -1032,7 +1037,6 @@ int main(int argc, char *argv[])
milter_sapi_module.executable_location = argv[0];
- tsrm_ls = ts_resource(0);
sapi_module.startup(&milter_sapi_module);