]> granicus.if.org Git - php/commitdiff
Fixed bug #67715 (php-milter does not build and crashes randomly).
authorMichael Wallner <mike@php.net>
Wed, 30 Jul 2014 18:12:13 +0000 (20:12 +0200)
committerMichael Wallner <mike@php.net>
Wed, 30 Jul 2014 18:12:13 +0000 (20:12 +0200)
NEWS
sapi/milter/Makefile.frag
sapi/milter/config.m4
sapi/milter/php_milter.c

diff --git a/NEWS b/NEWS
index a6520bc2389e6dba18573ba8ff6217e2136403e8..9056bd5a0acae9d1bac2ecace88d4a65e7c32aab 100644 (file)
--- 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).
 
index 26200a196c05828cf06beeb32c49f8bc1d0d82bb..f193f56b01bb323c0a3ae241653cf149b164bc49 100644 (file)
@@ -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
 
index 48c7a5d804356c9eac09148a84aaaff7636b564d..db9c4c5b4c4aacf9806dcf3e7a4a652c4457520a 100644 (file)
@@ -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
index 432fd806c2aa85cda81004d117b35dd2e4e3ccb9..4a11707239115983bcec66332dec0d07c2939ae2 100644 (file)
@@ -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);