ID: 40392 User updated by: tuxracer69 at gmail dot com Reported By: tuxracer69 at gmail dot com Status: Open Bug Type: Unknown/Other Function Operating System: Linux 2.6.17-2-686 PHP Version: 5CVS-2007-02-07 (snap) New Comment:
Well, the goal of the sapi is to call PHP code based on SMTP commands a client sends to a sendmail server, and in that respect I would say 'it works'. Although I did not put the code in a production server, (that's what I eventually plan to do) I would say that the functions do what they are expected to do. The memory leaks were really ugly. I have other warnings at compile time I could have a look at. I think there is definitely an interest in processing mail with PHP as after a previous bug we fixed in the milter sapi (Bug #40083) I got mails of other developers asking questions about the stability of the sapi. Perhaps moving this code to PECL would slow down its development at a moment where interest is growing and a (relatively) small effort may take the code up to date. thanks Alex Previous Comments: ------------------------------------------------------------------------ [2007-02-07 20:12:48] [EMAIL PROTECTED] >Could somebody confirm this? Yes. This SAPI is orphaned for years, so I would actually like to move it to PECL (or anywhere else, just because we cannot guarantee if it works at all). Also looking at the code I can see other problems, one more reason to remove this SAPI. ------------------------------------------------------------------------ [2007-02-07 20:03:20] tuxracer69 at gmail dot com after digging in the cli SAPI code I tried using zval_ptr_dtor instead of the FREE_ZVAL macro. This resolved the issue (at least I do not see the warnings anymore). Could somebody confirm this? Thanks Alex ----here is my diff--- diff php_milter.c php_milter.c.dist 205c205 < zval_ptr_dtor(param); --- > 238d237 < zval_ptr_dtor(param); 239a239 > FREE_ZVAL(param[0]); 278d277 < zval_ptr_dtor(param); 279a279 > FREE_ZVAL(param[0]); 319,320c319 < zval_ptr_dtor(param); < --- > FREE_ZVAL(param[0]); 358,360c357,358 < zval_ptr_dtor(¶m[0]); < zval_ptr_dtor(¶m[1]); < --- > FREE_ZVAL(param[0]); > FREE_ZVAL(param[1]); 423,424c421 < zval_ptr_dtor(param); < --- > FREE_ZVAL(param[0]); ------------------------------------------------------------------------ [2007-02-07 19:56:23] tuxracer69 at gmail dot com Description: ------------ After compiling the last CVS snapshot (5.2) ./configure \ --with-pgsql --with-curl --with-xml \ --enable-sockets --with-zlib --with-bz2 \ --with-iconv --enable-track-vars --enable-sysvsem \ --enable-sysvshm --enable-inline-optimization \ --with-curl --with-regex=system --with-png \ --enable-discard-path --enable-dbx --enable-memory-limit \ --disable-debug --disable-rpath --with-openssl \ --enable-exif --enable-mbstring \ --with-xsl=/usr/lib \ --with-milter --disable-cli --disable-cgi --enable-debug and launching the example milter I was getting the memory leaks warnings below. ----------------- /usr/local/php5.2-200702061930/sapi/milter/php_milter.c(304) : Freeing 0xA5E46184 (44 bytes), script=- /usr/local/php5.2-200702061930/Zend/zend_API.c(819) : Actual location (location was relayed) Last leak repeated 1 time [Wed Feb 7 10:20:03 2007] Script: '-' /usr/local/php5.2-200702061930/sapi/milter/php_milter.c(196) : Freeing 0xA5E464 70 (10 bytes), script=- [Wed Feb 7 10:20:03 2007] Script: '-' /usr/local/php5.2-200702061930/sapi/milter/php_milter.c(346) : Freeing 0xA5E466 C4 (3 bytes), script=- Last leak repeated 5 times [Wed Feb 7 10:20:03 2007] Script: '-' /usr/local/php5.2-200702061930/Zend/zend_API.c(1193) : Freeing 0xA5E466F8 (16 bytes), script=- Last leak repeated 2 times [Wed Feb 7 10:20:03 2007] Script: '-' /usr/local/php5.2-200702061930/sapi/milter/php_milter.c(229) : Freeing 0xA5E468A8 (10 bytes), script=- [Wed Feb 7 10:20:03 2007] Script: '-' /usr/local/php5.2-200702061930/Zend/zend_API.c(1194) : Freeing 0xA5E468E4 (17 bytes), script=- Last leak repeated 2 times [Wed Feb 7 10:20:03 2007] Script: '-' /usr/local/php5.2-200702061930/Zend/zend_API.c(1196) : Freeing 0xA5E46958 (35 bytes), script=- /usr/local/php5.2-200702061930/Zend/zend_hash.c(388) : Actual location (location was relayed) Last leak repeated 2 times [Wed Feb 7 10:20:03 2007] Script: '-' /usr/local/php5.2-200702061930/sapi/milter/php_milter.c(411) : Freeing 0xA5E46E D8 (43 bytes), script=- [Wed Feb 7 10:20:03 2007] Script: '-' /usr/local/php5.2-200702061930/sapi/milter/php_milter.c(347) : Freeing 0xA5E470 50 (40 bytes), script=- Last leak repeated 5 times [Wed Feb 7 10:20:03 2007] Script: '-' /usr/local/php5.2-200702061930/sapi/milter/php_milter.c(264) : Freeing 0xA5E49A 58 (32 bytes), script=- /usr/local/php5.2-200702061930/Zend/zend_alloc.c(1917) : Actual location (location was relayed) Last leak repeated 1 time [Wed Feb 7 10:20:03 2007] Script: '-' /usr/local/php5.2-200702061930/sapi/milter/php_milter.c(192) : Freeing 0xA5E505E8 (16 bytes), script=- === Total 29 memory leaks detected === --------------- The TODO file in the distribution mention such leaks. Reproduce code: --------------- the milter.php in the milter sapi distribution Expected result: ---------------- no memory leaks Actual result: -------------- a lot of memory leaks warnings. ------------------------------------------------------------------------ -- Edit this bug report at http://bugs.php.net/?id=40392&edit=1