[PHP-CVS] cvs: php-src(PHP_5_2) /ext/imap php_imap.c
iliaa Tue Jun 23 12:43:10 2009 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/imap php_imap.c Log: Fixed build http://cvs.php.net/viewvc.cgi/php-src/ext/imap/php_imap.c?r1=1.208.2.7.2.52r2=1.208.2.7.2.53diff_format=u Index: php-src/ext/imap/php_imap.c diff -u php-src/ext/imap/php_imap.c:1.208.2.7.2.52 php-src/ext/imap/php_imap.c:1.208.2.7.2.53 --- php-src/ext/imap/php_imap.c:1.208.2.7.2.52 Mon Jun 22 20:42:04 2009 +++ php-src/ext/imap/php_imap.c Tue Jun 23 12:43:10 2009 @@ -26,7 +26,7 @@ | PHP 4.0 updates: Zeev Suraski z...@zend.com | +--+ */ -/* $Id: php_imap.c,v 1.208.2.7.2.52 2009/06/22 20:42:04 pajoye Exp $ */ +/* $Id: php_imap.c,v 1.208.2.7.2.53 2009/06/23 12:43:10 iliaa Exp $ */ #define IMAP41 @@ -2670,7 +2670,7 @@ slst = mail_sort(imap_le_struct-imap_stream, (myargc == 6 ? Z_STRVAL_PP(charset) : NIL), spg, mypgm, (myargc = 4 ? Z_LVAL_PP(flags) : NIL)); - if (spg !(flags SE_FREE)) { + if (spg myargc = 4 !(Z_LVAL_PP(flags) SE_FREE)) { mail_free_searchpgm(spg); } -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_2) /ext/imap php_imap.c
pajoye Mon Jun 22 20:42:04 2009 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/imap php_imap.c Log: - MF53: #48619, imap_search ALL segfaults http://cvs.php.net/viewvc.cgi/php-src/ext/imap/php_imap.c?r1=1.208.2.7.2.51r2=1.208.2.7.2.52diff_format=u Index: php-src/ext/imap/php_imap.c diff -u php-src/ext/imap/php_imap.c:1.208.2.7.2.51 php-src/ext/imap/php_imap.c:1.208.2.7.2.52 --- php-src/ext/imap/php_imap.c:1.208.2.7.2.51 Thu Apr 30 18:55:44 2009 +++ php-src/ext/imap/php_imap.c Mon Jun 22 20:42:04 2009 @@ -26,7 +26,7 @@ | PHP 4.0 updates: Zeev Suraski z...@zend.com | +--+ */ -/* $Id: php_imap.c,v 1.208.2.7.2.51 2009/04/30 18:55:44 pajoye Exp $ */ +/* $Id: php_imap.c,v 1.208.2.7.2.52 2009/06/22 20:42:04 pajoye Exp $ */ #define IMAP41 @@ -2670,7 +2670,7 @@ slst = mail_sort(imap_le_struct-imap_stream, (myargc == 6 ? Z_STRVAL_PP(charset) : NIL), spg, mypgm, (myargc = 4 ? Z_LVAL_PP(flags) : NIL)); - if (spg) { + if (spg !(flags SE_FREE)) { mail_free_searchpgm(spg); } @@ -3712,7 +3712,7 @@ mail_search_full(imap_le_struct-imap_stream, (argc == 4 ? Z_STRVAL_PP(charset) : NIL), pgm, flags); - if (pgm) { + if (pgm !(flags SE_FREE)) { mail_free_searchpgm(pgm); } @@ -4341,7 +4341,7 @@ pgm = mail_criteria(criteria); top = mail_thread(imap_le_struct-imap_stream, REFERENCES, NIL, pgm, flags); - if (pgm) { + if (pgm !(flags SE_FREE)) { mail_free_searchpgm(pgm); } -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_2) /ext/imap php_imap.c
pajoye Tue Apr 28 08:33:25 2009 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/imap php_imap.c Log: - space to tabs - CS http://cvs.php.net/viewvc.cgi/php-src/ext/imap/php_imap.c?r1=1.208.2.7.2.48r2=1.208.2.7.2.49diff_format=u Index: php-src/ext/imap/php_imap.c diff -u php-src/ext/imap/php_imap.c:1.208.2.7.2.48 php-src/ext/imap/php_imap.c:1.208.2.7.2.49 --- php-src/ext/imap/php_imap.c:1.208.2.7.2.48 Mon Apr 27 00:01:15 2009 +++ php-src/ext/imap/php_imap.c Tue Apr 28 08:33:25 2009 @@ -26,7 +26,7 @@ | PHP 4.0 updates: Zeev Suraski z...@zend.com | +--+ */ -/* $Id: php_imap.c,v 1.208.2.7.2.48 2009/04/27 00:01:15 pajoye Exp $ */ +/* $Id: php_imap.c,v 1.208.2.7.2.49 2009/04/28 08:33:25 pajoye Exp $ */ #define IMAP41 @@ -275,7 +275,7 @@ */ FOBJECTLIST *mail_newfolderobjectlist(void) { - return (FOBJECTLIST *) memset(fs_get(sizeof(FOBJECTLIST)), 0, sizeof(FOBJECTLIST)); + return (FOBJECTLIST *) memset(fs_get(sizeof(FOBJECTLIST)), 0, sizeof(FOBJECTLIST)); } /* }}} */ @@ -1150,11 +1150,11 @@ convert_to_long_ex(options); flags = Z_LVAL_PP(options); -/* Check that flags is exactly equal to PHP_EXPUNGE or Zero*/ -if (flags ((flags ~PHP_EXPUNGE) != 0)) { -php_error_docref(NULL TSRMLS_CC, E_WARNING, invalid value for the flags parameter); - RETURN_FALSE; -} + /* Check that flags is exactly equal to PHP_EXPUNGE or Zero*/ + if (flags ((flags ~PHP_EXPUNGE) != 0)) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, invalid value for the flags parameter); + RETURN_FALSE; + } /* Do the translation from PHP's internal PHP_EXPUNGE define to c-client's CL_EXPUNGE */ if (flags PHP_EXPUNGE) { @@ -1242,10 +1242,10 @@ if (myargc == 3) { convert_to_long_ex(pflags); flags = Z_LVAL_PP(pflags); - if (flags ((flags ~(FT_UID|FT_PEEK|FT_INTERNAL)) != 0)) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, invalid value for the options parameter); - RETURN_FALSE; - } + if (flags ((flags ~(FT_UID|FT_PEEK|FT_INTERNAL)) != 0)) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, invalid value for the options parameter); + RETURN_FALSE; + } } if ((myargc == 3) (flags FT_UID)) { @@ -1881,10 +1881,10 @@ convert_to_long_ex(pflags); flags = Z_LVAL_PP(pflags); - if (flags ((flags ~FT_UID) != 0)) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, invalid value for the options parameter); - RETURN_FALSE; - } + if (flags ((flags ~FT_UID) != 0)) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, invalid value for the options parameter); + RETURN_FALSE; + } } object_init(return_value); @@ -1917,7 +1917,7 @@ zval **streamind, **msgno, **sec, **pflags; pils *imap_le_struct; char *body; -long flags=0L; + long flags=0L; unsigned long len; int myargc=ZEND_NUM_ARGS(); @@ -1933,10 +1933,10 @@ if (myargc == 4) { convert_to_long_ex(pflags); flags = Z_LVAL_PP(pflags); - if (flags ((flags ~(FT_UID|FT_PEEK|FT_INTERNAL)) != 0)) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, invalid value for the options parameter); - RETURN_FALSE; -} + if (flags ((flags ~(FT_UID|FT_PEEK|FT_INTERNAL)) != 0)) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, invalid value for the options parameter); + RETURN_FALSE; + } } if (myargc 4 || !(flags FT_UID)) { @@ -2690,7 +2690,7 @@ zval **streamind, **msgno, **pflags; pils *imap_le_struct; int msgindex, myargc = ZEND_NUM_ARGS(); -long flags=0L; + long flags=0L; if (myargc 2 || myargc 3 || zend_get_parameters_ex(myargc, streamind, msgno, pflags) == FAILURE) { ZEND_WRONG_PARAM_COUNT(); @@ -2701,12 +2701,12 @@ convert_to_long_ex(msgno); if (myargc == 3) { convert_to_long_ex(pflags); -flags = Z_LVAL_PP(pflags); - if (flags ((flags ~(FT_UID|FT_INTERNAL|FT_PREFETCHTEXT)) != 0)) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, invalid value for the options
[PHP-CVS] cvs: php-src(PHP_5_2) /ext/imap php_imap.c
pajoye Tue Apr 28 12:43:10 2009 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/imap php_imap.c Log: - MFH: SEARCHPGM struct has to be freed http://cvs.php.net/viewvc.cgi/php-src/ext/imap/php_imap.c?r1=1.208.2.7.2.49r2=1.208.2.7.2.50diff_format=u Index: php-src/ext/imap/php_imap.c diff -u php-src/ext/imap/php_imap.c:1.208.2.7.2.49 php-src/ext/imap/php_imap.c:1.208.2.7.2.50 --- php-src/ext/imap/php_imap.c:1.208.2.7.2.49 Tue Apr 28 08:33:25 2009 +++ php-src/ext/imap/php_imap.c Tue Apr 28 12:43:10 2009 @@ -26,7 +26,7 @@ | PHP 4.0 updates: Zeev Suraski z...@zend.com | +--+ */ -/* $Id: php_imap.c,v 1.208.2.7.2.49 2009/04/28 08:33:25 pajoye Exp $ */ +/* $Id: php_imap.c,v 1.208.2.7.2.50 2009/04/28 12:43:10 pajoye Exp $ */ #define IMAP41 @@ -3685,6 +3685,7 @@ char *search_criteria; MESSAGELIST *cur; int argc = ZEND_NUM_ARGS(); + SEARCHPGM *pgm = NIL; if (argc 2 || argc 4 || zend_get_parameters_ex(argc, streamind, criteria, search_flags, charset) == FAILURE) { ZEND_WRONG_PARAM_COUNT(); @@ -3705,8 +3706,15 @@ } } + pgm = mail_criteria(search_criteria); IMAPG(imap_messages) = IMAPG(imap_messages_tail) = NIL; - mail_search_full(imap_le_struct-imap_stream, (argc == 4 ? Z_STRVAL_PP(charset) : NIL), mail_criteria(search_criteria), flags); + + mail_search_full(imap_le_struct-imap_stream, (argc == 4 ? Z_STRVAL_PP(charset) : NIL), pgm, flags); + + if (pgm) { + mail_free_searchpgm(pgm); + } + if (IMAPG(imap_messages) == NIL) { efree(search_criteria); RETURN_FALSE; @@ -4315,6 +4323,7 @@ char criteria[] = ALL; THREADNODE *top; int argc = ZEND_NUM_ARGS(); + SEARCHPGM *pgm = NIL; if ( argc 1 || argc 2 || zend_get_parameters_ex(argc, streamind, search_flags) == FAILURE) { ZEND_WRONG_PARAM_COUNT(); @@ -4329,7 +4338,11 @@ flags = Z_LVAL_PP(search_flags); } - top = mail_thread(imap_le_struct-imap_stream, REFERENCES, NIL, mail_criteria(criteria), flags); + pgm = mail_criteria(criteria); + top = mail_thread(imap_le_struct-imap_stream, REFERENCES, NIL, pgm, flags); + if (pgm) { + mail_free_searchpgm(pgm); + } if(top == NIL) { php_error_docref(NULL TSRMLS_CC, E_WARNING, Function returned an empty tree); -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_2) /ext/imap php_imap.c
pajoye Mon Apr 27 00:01:16 2009 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/imap php_imap.c Log: - MFH: add latest cclient versions http://cvs.php.net/viewvc.cgi/php-src/ext/imap/php_imap.c?r1=1.208.2.7.2.47r2=1.208.2.7.2.48diff_format=u Index: php-src/ext/imap/php_imap.c diff -u php-src/ext/imap/php_imap.c:1.208.2.7.2.47 php-src/ext/imap/php_imap.c:1.208.2.7.2.48 --- php-src/ext/imap/php_imap.c:1.208.2.7.2.47 Sat Apr 25 16:36:02 2009 +++ php-src/ext/imap/php_imap.c Mon Apr 27 00:01:15 2009 @@ -26,7 +26,7 @@ | PHP 4.0 updates: Zeev Suraski z...@zend.com | +--+ */ -/* $Id: php_imap.c,v 1.208.2.7.2.47 2009/04/25 16:36:02 pajoye Exp $ */ +/* $Id: php_imap.c,v 1.208.2.7.2.48 2009/04/27 00:01:15 pajoye Exp $ */ #define IMAP41 @@ -719,8 +719,17 @@ } /* }}} */ + #if !defined(CCLIENTVERSION) -#if HAVE_IMAP2004 +#if HAVE_IMAP2007e +#define CCLIENTVERSION 2007e +#elif HAVE_IMAP2007d +#define CCLIENTVERSION 2007d +#elif HAVE_IMAP2007b +#define CCLIENTVERSION 2007b +#elif HAVE_IMAP2007a +#define CCLIENTVERSION 2007a +#elif HAVE_IMAP2004 #define CCLIENTVERSION 2004 #elif HAVE_IMAP2001 #define CCLIENTVERSION 2001 -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_2) /ext/imap php_imap.c
pajoye Sat Apr 25 16:36:02 2009 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/imap php_imap.c Log: - ws http://cvs.php.net/viewvc.cgi/php-src/ext/imap/php_imap.c?r1=1.208.2.7.2.46r2=1.208.2.7.2.47diff_format=u Index: php-src/ext/imap/php_imap.c diff -u php-src/ext/imap/php_imap.c:1.208.2.7.2.46 php-src/ext/imap/php_imap.c:1.208.2.7.2.47 --- php-src/ext/imap/php_imap.c:1.208.2.7.2.46 Fri Apr 24 14:53:59 2009 +++ php-src/ext/imap/php_imap.c Sat Apr 25 16:36:02 2009 @@ -26,7 +26,7 @@ | PHP 4.0 updates: Zeev Suraski z...@zend.com | +--+ */ -/* $Id: php_imap.c,v 1.208.2.7.2.46 2009/04/24 14:53:59 pajoye Exp $ */ +/* $Id: php_imap.c,v 1.208.2.7.2.47 2009/04/25 16:36:02 pajoye Exp $ */ #define IMAP41 @@ -241,7 +241,7 @@ static int add_assoc_object(zval *arg, char *key, zval *tmp TSRMLS_DC) { HashTable *symtable; - + if (Z_TYPE_P(arg) == IS_OBJECT) { symtable = Z_OBJPROP_P(arg); } else { @@ -256,14 +256,14 @@ static inline int add_next_index_object(zval *arg, zval *tmp TSRMLS_DC) { HashTable *symtable; - + if (Z_TYPE_P(arg) == IS_OBJECT) { symtable = Z_OBJPROP_P(arg); } else { symtable = Z_ARRVAL_P(arg); } - return zend_hash_next_index_insert(symtable, (void *) tmp, sizeof(zval *), NULL); + return zend_hash_next_index_insert(symtable, (void *) tmp, sizeof(zval *), NULL); } /* }}} */ @@ -334,7 +334,7 @@ /* }}} */ /* {{{ mail_newmessagelist - * + * * Mail instantiate MESSAGELIST * Returns: new MESSAGELIST list * Author: CJH @@ -365,8 +365,8 @@ } /* }}} */ -#if defined(HAVE_IMAP2000) || defined(HAVE_IMAP2001) -/* {{{ mail_getquota +#if defined(HAVE_IMAP2000) || defined(HAVE_IMAP2001) +/* {{{ mail_getquota * * Mail GET_QUOTA callback * Called via the mail_parameter function in c-client:src/c-client/mail.c @@ -377,7 +377,7 @@ { zval *t_map, *return_value; TSRMLS_FETCH(); - + return_value = *IMAPG(quota_return); /* put parsing code here */ @@ -472,7 +472,7 @@ #ifndef PHP_WIN32 auth_link(auth_log); /* link in the log authenticator */ - auth_link(auth_md5); /* link in the cram-md5 authenticator */ + auth_link(auth_md5); /* link in the cram-md5 authenticator */ #if HAVE_IMAP_KRB defined(HAVE_IMAP_AUTH_GSS) auth_link(auth_gss); /* link in the gss authenticator */ #endif @@ -522,13 +522,13 @@ REGISTER_LONG_CONSTANT(OP_SECURE, OP_SECURE, CONST_PERSISTENT | CONST_CS); /* don't do non-secure authentication */ - /* + /* PHP re-assigns CL_EXPUNGE a custom value that can be used as part of the imap_open() bitfield - because it seems like a good idea to be able to indicate that the mailbox should be + because it seems like a good idea to be able to indicate that the mailbox should be automatically expunged during imap_open in case the script get interrupted and it doesn't get to the imap_close() where this option is normally placed. If the c-client library adds other - options and the value for this one conflicts, simply make PHP_EXPUNGE higher at the top of - this file + options and the value for this one conflicts, simply make PHP_EXPUNGE higher at the top of + this file */ REGISTER_LONG_CONSTANT(CL_EXPUNGE, PHP_EXPUNGE, CONST_PERSISTENT | CONST_CS); /* expunge silently */ @@ -759,7 +759,7 @@ long flags=NIL; long cl_flags=NIL; int myargc = ZEND_NUM_ARGS(); - + if (myargc 3 || myargc 5 || zend_get_parameters_ex(myargc, mailbox, user, passwd, options, retries) == FAILURE) { ZEND_WRONG_PARAM_COUNT(); } @@ -776,17 +776,17 @@ } } - if (IMAPG(imap_user)) { + if (IMAPG(imap_user)) { efree(IMAPG(imap_user)); } - if (IMAPG(imap_password)) { + if (IMAPG(imap_password)) { efree(IMAPG(imap_password)); } /* local filename, need to perform open_basedir and safe_mode checks */ - if (Z_STRVAL_PP(mailbox)[0] != '{' - (php_check_open_basedir(Z_STRVAL_PP(mailbox) TSRMLS_CC) || + if (Z_STRVAL_PP(mailbox)[0] != '{' + (php_check_open_basedir(Z_STRVAL_PP(mailbox) TSRMLS_CC) || (PG(safe_mode) !php_checkuid(Z_STRVAL_PP(mailbox), NULL, CHECKUID_CHECK_FILE_AND_DIR { RETURN_FALSE; } @@ -816,7 +816,7 @@ imap_le_struct = emalloc(sizeof(pils)); imap_le_struct-imap_stream = imap_stream; - imap_le_struct-flags = cl_flags; + imap_le_struct-flags = cl_flags;
[PHP-CVS] cvs: php-src(PHP_5_2) /ext/imap php_imap.c
pajoye Thu Apr 23 22:32:41 2009 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/imap php_imap.c Log: - MFH: #47940, leaks in imap_body() http://cvs.php.net/viewvc.cgi/php-src/ext/imap/php_imap.c?r1=1.208.2.7.2.44r2=1.208.2.7.2.45diff_format=u Index: php-src/ext/imap/php_imap.c diff -u php-src/ext/imap/php_imap.c:1.208.2.7.2.44 php-src/ext/imap/php_imap.c:1.208.2.7.2.45 --- php-src/ext/imap/php_imap.c:1.208.2.7.2.44 Sun Apr 5 14:10:49 2009 +++ php-src/ext/imap/php_imap.c Thu Apr 23 22:32:41 2009 @@ -26,7 +26,7 @@ | PHP 4.0 updates: Zeev Suraski z...@zend.com | +--+ */ -/* $Id: php_imap.c,v 1.208.2.7.2.44 2009/04/05 14:10:49 iliaa Exp $ */ +/* $Id: php_imap.c,v 1.208.2.7.2.45 2009/04/23 22:32:41 pajoye Exp $ */ #define IMAP41 @@ -1219,6 +1219,8 @@ pils *imap_le_struct; int msgindex, myargc=ZEND_NUM_ARGS(); long flags=0L; + char *body; + unsigned long body_len = 0; if (myargc 2 || myargc 3 || zend_get_parameters_ex(myargc, streamind, msgno, pflags) == FAILURE) { ZEND_WRONG_PARAM_COUNT(); @@ -1249,8 +1251,13 @@ php_error_docref(NULL TSRMLS_CC, E_WARNING, Bad message number); RETURN_FALSE; } - - RETVAL_STRING(mail_fetchtext_full (imap_le_struct-imap_stream, Z_LVAL_PP(msgno), NIL, myargc==3 ? Z_LVAL_PP(pflags) : NIL), 1); + body = mail_fetchtext_full (imap_le_struct-imap_stream, Z_LVAL_PP(msgno), NIL, (myargc==3 ? Z_LVAL_PP(pflags) : NIL)); + if (body_len == 0) { + RETVAL_EMPTY_STRING(); + } else { + RETVAL_STRINGL(body, body_len, 1); + } + free(body); } /* }}} */ -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_2) /ext/imap php_imap.c
iliaa Sun Apr 5 14:10:50 2009 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/imap php_imap.c Log: Define _php_rfc822_len() only when needed http://cvs.php.net/viewvc.cgi/php-src/ext/imap/php_imap.c?r1=1.208.2.7.2.43r2=1.208.2.7.2.44diff_format=u Index: php-src/ext/imap/php_imap.c diff -u php-src/ext/imap/php_imap.c:1.208.2.7.2.43 php-src/ext/imap/php_imap.c:1.208.2.7.2.44 --- php-src/ext/imap/php_imap.c:1.208.2.7.2.43 Wed Dec 31 11:17:38 2008 +++ php-src/ext/imap/php_imap.c Sun Apr 5 14:10:49 2009 @@ -26,7 +26,7 @@ | PHP 4.0 updates: Zeev Suraski z...@zend.com | +--+ */ -/* $Id: php_imap.c,v 1.208.2.7.2.43 2008/12/31 11:17:38 sebastian Exp $ */ +/* $Id: php_imap.c,v 1.208.2.7.2.44 2009/04/05 14:10:49 iliaa Exp $ */ #define IMAP41 @@ -3886,38 +3886,11 @@ } /* }}} */ -/* {{{ _php_rfc822_len - * Calculate string length based on imap's rfc822_cat function. - */ -static int _php_rfc822_len(char *str) -{ - int len; - char *p; - - if (!str || !*str) { - return 0; - } - - /* strings with special characters will need to be quoted, as a safety measure we -* add 2 bytes for the quotes just in case. -*/ - len = strlen(str) + 2; - p = str; - /* rfc822_cat() will escape all and \ characters, therefor we need to increase -* our buffer length to account for these characters. -*/ - while ((p = strpbrk(p, \\\))) { - p++; - len++; - } - - return len; -} -/* }}} */ /* Support Functions */ #ifdef HAVE_RFC822_OUTPUT_ADDRESS_LIST + /* {{{ _php_rfc822_soutr */ static long _php_rfc822_soutr (void *stream, char *string) @@ -3953,6 +3926,36 @@ #else +/* {{{ _php_rfc822_len + * Calculate string length based on imap's rfc822_cat function. + */ +static int _php_rfc822_len(char *str) +{ + int len; + char *p; + + if (!str || !*str) { + return 0; + } + + /* strings with special characters will need to be quoted, as a safety measure we +* add 2 bytes for the quotes just in case. +*/ + len = strlen(str) + 2; + p = str; + /* rfc822_cat() will escape all and \ characters, therefor we need to increase +* our buffer length to account for these characters. +*/ + while ((p = strpbrk(p, \\\))) { + p++; + len++; + } + + return len; +} +/* }}} */ + + /* {{{ _php_imap_get_address_size */ static int _php_imap_address_size (ADDRESS *addresslist) -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_2) /ext/imap php_imap.c
felipe Wed Dec 24 11:24:38 2008 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/imap php_imap.c Log: - Fixed bug #46918 (imap_rfc822_parse_adrlist host part not filled in correctly) [only in this branch] http://cvs.php.net/viewvc.cgi/php-src/ext/imap/php_imap.c?r1=1.208.2.7.2.40r2=1.208.2.7.2.41diff_format=u Index: php-src/ext/imap/php_imap.c diff -u php-src/ext/imap/php_imap.c:1.208.2.7.2.40 php-src/ext/imap/php_imap.c:1.208.2.7.2.41 --- php-src/ext/imap/php_imap.c:1.208.2.7.2.40 Tue Dec 16 21:35:42 2008 +++ php-src/ext/imap/php_imap.c Wed Dec 24 11:24:38 2008 @@ -26,7 +26,7 @@ | PHP 4.0 updates: Zeev Suraski z...@zend.com | +--+ */ -/* $Id: php_imap.c,v 1.208.2.7.2.40 2008/12/16 21:35:42 zoe Exp $ */ +/* $Id: php_imap.c,v 1.208.2.7.2.41 2008/12/24 11:24:38 felipe Exp $ */ #define IMAP41 @@ -2201,7 +2201,7 @@ /* rfc822_parse_adrlist() modifies passed string. Copy it. */ str_copy = estrndup(Z_STRVAL_PP(str), Z_STRLEN_PP(str)); - rfc822_parse_adrlist(env-to, str_copy, defaulthost); + rfc822_parse_adrlist(env-to, str_copy, Z_STRVAL_PP(defaulthost)); efree(str_copy); array_init(return_value); -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_2) /ext/imap php_imap.c
felipe Wed Dec 24 13:31:40 2008 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/imap php_imap.c Log: - MFH: Fixed memory leak in imap_rfc822_parse_adrlist http://cvs.php.net/viewvc.cgi/php-src/ext/imap/php_imap.c?r1=1.208.2.7.2.41r2=1.208.2.7.2.42diff_format=u Index: php-src/ext/imap/php_imap.c diff -u php-src/ext/imap/php_imap.c:1.208.2.7.2.41 php-src/ext/imap/php_imap.c:1.208.2.7.2.42 --- php-src/ext/imap/php_imap.c:1.208.2.7.2.41 Wed Dec 24 11:24:38 2008 +++ php-src/ext/imap/php_imap.c Wed Dec 24 13:31:40 2008 @@ -26,7 +26,7 @@ | PHP 4.0 updates: Zeev Suraski z...@zend.com | +--+ */ -/* $Id: php_imap.c,v 1.208.2.7.2.41 2008/12/24 11:24:38 felipe Exp $ */ +/* $Id: php_imap.c,v 1.208.2.7.2.42 2008/12/24 13:31:40 felipe Exp $ */ #define IMAP41 @@ -2225,6 +2225,8 @@ } add_next_index_object(return_value, tovals TSRMLS_CC); } while ((addresstmp = addresstmp-next)); + + mail_free_envelope(env); } /* }}} */ -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_2) /ext/imap php_imap.c
zoe Tue Dec 16 21:11:50 2008 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/imap php_imap.c Log: bug #46884 fix http://cvs.php.net/viewvc.cgi/php-src/ext/imap/php_imap.c?r1=1.208.2.7.2.38r2=1.208.2.7.2.39diff_format=u Index: php-src/ext/imap/php_imap.c diff -u php-src/ext/imap/php_imap.c:1.208.2.7.2.38 php-src/ext/imap/php_imap.c:1.208.2.7.2.39 --- php-src/ext/imap/php_imap.c:1.208.2.7.2.38 Fri Dec 5 11:59:01 2008 +++ php-src/ext/imap/php_imap.c Tue Dec 16 21:11:49 2008 @@ -26,7 +26,7 @@ | PHP 4.0 updates: Zeev Suraski z...@zend.com | +--+ */ -/* $Id: php_imap.c,v 1.208.2.7.2.38 2008/12/05 11:59:01 zoe Exp $ */ +/* $Id: php_imap.c,v 1.208.2.7.2.39 2008/12/16 21:11:49 zoe Exp $ */ #define IMAP41 @@ -1208,22 +1208,29 @@ Read the message body */ PHP_FUNCTION(imap_body) { - zval **streamind, **msgno, **flags; + zval **streamind, **msgno, **pflags; pils *imap_le_struct; int msgindex, myargc=ZEND_NUM_ARGS(); + long flags=0L; - if (myargc 2 || myargc 3 || zend_get_parameters_ex(myargc, streamind, msgno, flags) == FAILURE) { + if (myargc 2 || myargc 3 || zend_get_parameters_ex(myargc, streamind, msgno, pflags) == FAILURE) { ZEND_WRONG_PARAM_COUNT(); } + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, imap, le_imap); convert_to_long_ex(msgno); if (myargc == 3) { - convert_to_long_ex(flags); + convert_to_long_ex(pflags); + flags = Z_LVAL_PP(pflags); + if (flags ((flags ~(FT_UID|FT_PEEK|FT_INTERNAL)) != 0)) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, invalid value for the options parameter); + RETURN_FALSE; + } } - if ((myargc == 3) (Z_LVAL_PP(flags) FT_UID)) { + if ((myargc == 3) (flags FT_UID)) { /* This should be cached; if it causes an extra RTT to the IMAP server, then that's the price we pay for making sure we don't crash. */ @@ -1236,7 +1243,7 @@ RETURN_FALSE; } - RETVAL_STRING(mail_fetchtext_full (imap_le_struct-imap_stream, Z_LVAL_PP(msgno), NIL, myargc==3 ? Z_LVAL_PP(flags) : NIL), 1); + RETVAL_STRING(mail_fetchtext_full (imap_le_struct-imap_stream, Z_LVAL_PP(msgno), NIL, myargc==3 ? Z_LVAL_PP(pflags) : NIL), 1); } /* }}} */ @@ -1830,14 +1837,16 @@ Read the full structure of a message */ PHP_FUNCTION(imap_fetchstructure) { - zval **streamind, **msgno, **flags; + zval **streamind, **msgno, **pflags; pils *imap_le_struct; BODY *body; int msgindex, myargc=ZEND_NUM_ARGS(); + long flags=0L; - if (myargc 2 || myargc 3 || zend_get_parameters_ex(myargc, streamind, msgno, flags) == FAILURE) { + if (myargc 2 || myargc 3 || zend_get_parameters_ex(myargc, streamind, msgno, pflags) == FAILURE) { ZEND_WRONG_PARAM_COUNT(); } + ZEND_FETCH_RESOURCE(imap_le_struct, pils *, streamind, -1, imap, le_imap); @@ -1846,12 +1855,18 @@ RETURN_FALSE; } if (myargc == 3) { - convert_to_long_ex(flags); + convert_to_long_ex(pflags); + flags = Z_LVAL_PP(pflags); + + if (flags ((flags ~FT_UID) != 0)) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, invalid value for the options parameter); + RETURN_FALSE; + } } object_init(return_value); - if ((myargc == 3) (Z_LVAL_PP(flags) FT_UID)) { + if ((myargc == 3) (flags FT_UID)) { /* This should be cached; if it causes an extra RTT to the IMAP server, then that's the price we pay for making sure we don't crash. */ @@ -1861,7 +1876,7 @@ } PHP_IMAP_CHECK_MSGNO(msgindex); - mail_fetchstructure_full(imap_le_struct-imap_stream, Z_LVAL_PP(msgno), body , myargc == 3 ? Z_LVAL_PP(flags) : NIL); + mail_fetchstructure_full(imap_le_struct-imap_stream, Z_LVAL_PP(msgno), body , myargc == 3 ? Z_LVAL_PP(pflags) : NIL); if (!body) { php_error_docref(NULL TSRMLS_CC, E_WARNING, No body information available); @@ -1876,30 +1891,37 @@ Get a specific body section */ PHP_FUNCTION(imap_fetchbody) { - zval **streamind, **msgno, **sec, **flags; + zval **streamind, **msgno, **sec, **pflags; pils *imap_le_struct; char *body; +long flags=0L; unsigned long len; int myargc=ZEND_NUM_ARGS(); - if (myargc 3 || myargc 4 || zend_get_parameters_ex(myargc, streamind, msgno, sec, flags) ==
[PHP-CVS] cvs: php-src(PHP_5_2) /ext/imap php_imap.c
zoe Tue Dec 16 21:35:42 2008 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/imap php_imap.c Log: bug #46837 fix http://cvs.php.net/viewvc.cgi/php-src/ext/imap/php_imap.c?r1=1.208.2.7.2.39r2=1.208.2.7.2.40diff_format=u Index: php-src/ext/imap/php_imap.c diff -u php-src/ext/imap/php_imap.c:1.208.2.7.2.39 php-src/ext/imap/php_imap.c:1.208.2.7.2.40 --- php-src/ext/imap/php_imap.c:1.208.2.7.2.39 Tue Dec 16 21:11:49 2008 +++ php-src/ext/imap/php_imap.c Tue Dec 16 21:35:42 2008 @@ -26,7 +26,7 @@ | PHP 4.0 updates: Zeev Suraski z...@zend.com | +--+ */ -/* $Id: php_imap.c,v 1.208.2.7.2.39 2008/12/16 21:11:49 zoe Exp $ */ +/* $Id: php_imap.c,v 1.208.2.7.2.40 2008/12/16 21:35:42 zoe Exp $ */ #define IMAP41 @@ -1140,6 +1140,13 @@ if (myargcount == 2) { convert_to_long_ex(options); flags = Z_LVAL_PP(options); + +/* Check that flags is exactly equal to PHP_EXPUNGE or Zero*/ +if (flags ((flags ~PHP_EXPUNGE) != 0)) { +php_error_docref(NULL TSRMLS_CC, E_WARNING, invalid value for the flags parameter); + RETURN_FALSE; +} + /* Do the translation from PHP's internal PHP_EXPUNGE define to c-client's CL_EXPUNGE */ if (flags PHP_EXPUNGE) { flags ^= PHP_EXPUNGE; -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_2) /ext/imap php_imap.c
zoe Fri Dec 5 11:59:02 2008 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/imap php_imap.c Log: bug #46731 fix http://cvs.php.net/viewvc.cgi/php-src/ext/imap/php_imap.c?r1=1.208.2.7.2.37r2=1.208.2.7.2.38diff_format=u Index: php-src/ext/imap/php_imap.c diff -u php-src/ext/imap/php_imap.c:1.208.2.7.2.37 php-src/ext/imap/php_imap.c:1.208.2.7.2.38 --- php-src/ext/imap/php_imap.c:1.208.2.7.2.37 Thu Oct 16 16:20:53 2008 +++ php-src/ext/imap/php_imap.c Fri Dec 5 11:59:01 2008 @@ -26,7 +26,7 @@ | PHP 4.0 updates: Zeev Suraski [EMAIL PROTECTED] | +--+ */ -/* $Id: php_imap.c,v 1.208.2.7.2.37 2008/10/16 16:20:53 dmitry Exp $ */ +/* $Id: php_imap.c,v 1.208.2.7.2.38 2008/12/05 11:59:01 zoe Exp $ */ #define IMAP41 @@ -2895,6 +2895,10 @@ if(myargc == 3) { convert_to_long_ex(pflags); flags = Z_LVAL_PP(pflags); +if (flags ((flags ~FT_UID) != 0)) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, invalid value for the options parameter); + RETURN_FALSE; + } } array_init(return_value); -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-CVS] cvs: php-src(PHP_5_2) /ext/imap php_imap.c
On Fri, Dec 5, 2008 at 12:59, Zoe Slattery [EMAIL PROTECTED] wrote: zoe Fri Dec 5 11:59:02 2008 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/imap php_imap.c Log: bug #46731 fix NEWS? -Hannes -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_2) /ext/imap php_imap.c
janiMon Aug 4 20:54:21 2008 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/imap php_imap.c Log: MFH: proper version check http://cvs.php.net/viewvc.cgi/php-src/ext/imap/php_imap.c?r1=1.208.2.7.2.34r2=1.208.2.7.2.35diff_format=u Index: php-src/ext/imap/php_imap.c diff -u php-src/ext/imap/php_imap.c:1.208.2.7.2.34 php-src/ext/imap/php_imap.c:1.208.2.7.2.35 --- php-src/ext/imap/php_imap.c:1.208.2.7.2.34 Fri Jul 11 11:09:05 2008 +++ php-src/ext/imap/php_imap.c Mon Aug 4 20:54:20 2008 @@ -26,7 +26,7 @@ | PHP 4.0 updates: Zeev Suraski [EMAIL PROTECTED] | +--+ */ -/* $Id: php_imap.c,v 1.208.2.7.2.34 2008/07/11 11:09:05 felipe Exp $ */ +/* $Id: php_imap.c,v 1.208.2.7.2.35 2008/08/04 20:54:20 jani Exp $ */ #define IMAP41 @@ -717,23 +717,26 @@ } /* }}} */ - -/* {{{ PHP_MINFO_FUNCTION - */ -PHP_MINFO_FUNCTION(imap) -{ - php_info_print_table_start(); +#if !defined(CCLIENTVERSION) #if HAVE_IMAP2004 - php_info_print_table_row(2, IMAP c-Client Version, 2004); +#define CCLIENTVERSION 2004 #elif HAVE_IMAP2001 - php_info_print_table_row(2, IMAP c-Client Version, 2001); +#define CCLIENTVERSION 2001 #elif HAVE_IMAP2000 - php_info_print_table_row(2, IMAP c-Client Version, 2000); +#define CCLIENTVERSION 2000 #elif defined(IMAP41) - php_info_print_table_row(2, IMAP c-Client Version, 4.1); +#define CCLIENTVERSION 4.1 #else - php_info_print_table_row(2, IMAP c-Client Version, 4.0); +#define CCLIENTVERSION 4.0 +#endif #endif + +/* {{{ PHP_MINFO_FUNCTION + */ +PHP_MINFO_FUNCTION(imap) +{ + php_info_print_table_start(); + php_info_print_table_row(2, IMAP c-Client Version, CCLIENTVERSION); #if HAVE_IMAP_SSL php_info_print_table_row(2, SSL Support, enabled); #endif -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_2) /ext/imap php_imap.c
felipe Fri Jul 11 11:09:05 2008 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/imap php_imap.c Log: - Fixed the string sizes in imap_headerinfo http://cvs.php.net/viewvc.cgi/php-src/ext/imap/php_imap.c?r1=1.208.2.7.2.33r2=1.208.2.7.2.34diff_format=u Index: php-src/ext/imap/php_imap.c diff -u php-src/ext/imap/php_imap.c:1.208.2.7.2.33 php-src/ext/imap/php_imap.c:1.208.2.7.2.34 --- php-src/ext/imap/php_imap.c:1.208.2.7.2.33 Thu Jul 10 17:44:09 2008 +++ php-src/ext/imap/php_imap.c Fri Jul 11 11:09:05 2008 @@ -26,7 +26,7 @@ | PHP 4.0 updates: Zeev Suraski [EMAIL PROTECTED] | +--+ */ -/* $Id: php_imap.c,v 1.208.2.7.2.33 2008/07/10 17:44:09 felipe Exp $ */ +/* $Id: php_imap.c,v 1.208.2.7.2.34 2008/07/11 11:09:05 felipe Exp $ */ #define IMAP41 @@ -1575,7 +1575,7 @@ pils *imap_le_struct; MESSAGECACHE *cache; ENVELOPE *en; - char dummy[2000], fulladdress[MAILTMPLEN]; + char dummy[2000], fulladdress[MAILTMPLEN + 1]; int myargc = ZEND_NUM_ARGS(); if (myargc 2 || myargc 5 || zend_get_parameters_ex(myargc, streamind, msgno, fromlength, subjectlength, defaulthost) == FAILURE) { -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_2) /ext/imap php_imap.c
felipe Thu Jul 10 17:44:09 2008 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/imap php_imap.c Log: - Fixed bug #45460 (imap patch for fromlength fix in imap_headerinfo doesn't accept lengths of 1024) http://cvs.php.net/viewvc.cgi/php-src/ext/imap/php_imap.c?r1=1.208.2.7.2.32r2=1.208.2.7.2.33diff_format=u Index: php-src/ext/imap/php_imap.c diff -u php-src/ext/imap/php_imap.c:1.208.2.7.2.32 php-src/ext/imap/php_imap.c:1.208.2.7.2.33 --- php-src/ext/imap/php_imap.c:1.208.2.7.2.32 Wed Jun 11 02:32:22 2008 +++ php-src/ext/imap/php_imap.c Thu Jul 10 17:44:09 2008 @@ -26,7 +26,7 @@ | PHP 4.0 updates: Zeev Suraski [EMAIL PROTECTED] | +--+ */ -/* $Id: php_imap.c,v 1.208.2.7.2.32 2008/06/11 02:32:22 philip Exp $ */ +/* $Id: php_imap.c,v 1.208.2.7.2.33 2008/07/10 17:44:09 felipe Exp $ */ #define IMAP41 @@ -1587,8 +1587,8 @@ convert_to_long_ex(msgno); if (myargc = 3) { convert_to_long_ex(fromlength); - if (Z_LVAL_PP(fromlength) 0 || Z_LVAL_PP(fromlength) = MAILTMPLEN) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, From length has to be between 1 and %i, MAILTMPLEN); + if (Z_LVAL_PP(fromlength) 0 || Z_LVAL_PP(fromlength) MAILTMPLEN) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, From length has to be between 0 and %d, MAILTMPLEN); RETURN_FALSE; } } else { @@ -1596,8 +1596,8 @@ } if (myargc = 4) { convert_to_long_ex(subjectlength); - if (Z_LVAL_PP(subjectlength) 0 || Z_LVAL_PP(subjectlength) = MAILTMPLEN) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, Subject length has to be between 1 and %i, MAILTMPLEN); + if (Z_LVAL_PP(subjectlength) 0 || Z_LVAL_PP(subjectlength) MAILTMPLEN) { + php_error_docref(NULL TSRMLS_CC, E_WARNING, Subject length has to be between 0 and %d, MAILTMPLEN); RETURN_FALSE; } } else { -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_2) /ext/imap php_imap.c
felipe Thu Apr 17 11:04:49 2008 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/imap php_imap.c Log: - Fix typo http://cvs.php.net/viewvc.cgi/php-src/ext/imap/php_imap.c?r1=1.208.2.7.2.30r2=1.208.2.7.2.31diff_format=u Index: php-src/ext/imap/php_imap.c diff -u php-src/ext/imap/php_imap.c:1.208.2.7.2.30 php-src/ext/imap/php_imap.c:1.208.2.7.2.31 --- php-src/ext/imap/php_imap.c:1.208.2.7.2.30 Tue Apr 8 00:03:34 2008 +++ php-src/ext/imap/php_imap.c Thu Apr 17 11:04:49 2008 @@ -26,7 +26,7 @@ | PHP 4.0 updates: Zeev Suraski [EMAIL PROTECTED] | +--+ */ -/* $Id: php_imap.c,v 1.208.2.7.2.30 2008/04/08 00:03:34 iliaa Exp $ */ +/* $Id: php_imap.c,v 1.208.2.7.2.31 2008/04/17 11:04:49 felipe Exp $ */ #define IMAP41 @@ -792,7 +792,7 @@ #ifdef SET_MAXLOGINTRIALS if (myargc == 5) { convert_to_long_ex(retries); - if (retries 0) { + if (Z_LVAL_PP(retries) 0) { php_error_docref(NULL TSRMLS_CC, E_WARNING ,Retries must be greater or equal to 0); } else { mail_parameters(NIL, SET_MAXLOGINTRIALS, (void *) Z_LVAL_PP(retries)); -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_2) /ext/imap php_imap.c
stasTue Jul 31 00:31:11 2007 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/imap php_imap.c Log: sometimes c-client lib returns non-null entry with null host http://cvs.php.net/viewvc.cgi/php-src/ext/imap/php_imap.c?r1=1.208.2.7.2.25r2=1.208.2.7.2.26diff_format=u Index: php-src/ext/imap/php_imap.c diff -u php-src/ext/imap/php_imap.c:1.208.2.7.2.25 php-src/ext/imap/php_imap.c:1.208.2.7.2.26 --- php-src/ext/imap/php_imap.c:1.208.2.7.2.25 Fri Jul 6 00:13:56 2007 +++ php-src/ext/imap/php_imap.c Tue Jul 31 00:31:10 2007 @@ -26,7 +26,7 @@ | PHP 4.0 updates: Zeev Suraski [EMAIL PROTECTED] | +--+ */ -/* $Id: php_imap.c,v 1.208.2.7.2.25 2007/07/06 00:13:56 iliaa Exp $ */ +/* $Id: php_imap.c,v 1.208.2.7.2.26 2007/07/31 00:31:10 stas Exp $ */ #define IMAP41 @@ -3407,7 +3407,7 @@ addr = NULL; rfc822_parse_adrlist(addr, tempMailTo, NULL); while (addr) { - if (strcmp(addr-host, ERRHOST) == 0) { + if (addr-host == NULL || strcmp(addr-host, ERRHOST) == 0) { PHP_IMAP_BAD_DEST; } else { bufferTo = safe_erealloc(bufferTo, bt_len, 1, strlen(addr-mailbox)); @@ -3436,7 +3436,7 @@ addr = NULL; rfc822_parse_adrlist(addr, tempMailTo, NULL); while (addr) { - if (strcmp(addr-host, ERRHOST) == 0) { + if (addr-host == NULL || strcmp(addr-host, ERRHOST) == 0) { PHP_IMAP_BAD_DEST; } else { bufferCc = safe_erealloc(bufferCc, bt_len, 1, strlen(addr-mailbox)); @@ -3462,7 +3462,7 @@ addr = NULL; rfc822_parse_adrlist(addr, tempMailTo, NULL); while (addr) { - if (strcmp(addr-host, ERRHOST) == 0) { + if (addr-host == NULL || strcmp(addr-host, ERRHOST) == 0) { PHP_IMAP_BAD_DEST; } else { bufferBcc = safe_erealloc(bufferBcc, bt_len, 1, strlen(addr-mailbox)); -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_2) /ext/imap php_imap.c
iliaa Fri Jul 6 00:13:57 2007 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/imap php_imap.c Log: Fixed NOTICE message http://cvs.php.net/viewvc.cgi/php-src/ext/imap/php_imap.c?r1=1.208.2.7.2.24r2=1.208.2.7.2.25diff_format=u Index: php-src/ext/imap/php_imap.c diff -u php-src/ext/imap/php_imap.c:1.208.2.7.2.24 php-src/ext/imap/php_imap.c:1.208.2.7.2.25 --- php-src/ext/imap/php_imap.c:1.208.2.7.2.24 Mon Mar 19 22:56:57 2007 +++ php-src/ext/imap/php_imap.c Fri Jul 6 00:13:56 2007 @@ -26,7 +26,7 @@ | PHP 4.0 updates: Zeev Suraski [EMAIL PROTECTED] | +--+ */ -/* $Id: php_imap.c,v 1.208.2.7.2.24 2007/03/19 22:56:57 iliaa Exp $ */ +/* $Id: php_imap.c,v 1.208.2.7.2.25 2007/07/06 00:13:56 iliaa Exp $ */ #define IMAP41 @@ -2377,7 +2377,7 @@ #if PHP_DEBUG /* warn if we computed outlen incorrectly */ if (outp - out != outlen) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, outp - out [%d] != outlen [%d], outp - out, outlen); + php_error_docref(NULL TSRMLS_CC, E_WARNING, outp - out [%ld] != outlen [%d], outp - out, outlen); } #endif @@ -2496,7 +2496,7 @@ #if PHP_DEBUG /* warn if we computed outlen incorrectly */ if (outp - out != outlen) { - php_error_docref(NULL TSRMLS_CC, E_WARNING, outp - out [%d] != outlen [%d], outp - out, outlen); + php_error_docref(NULL TSRMLS_CC, E_WARNING, outp - out [%ld] != outlen [%d], outp - out, outlen); } #endif -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-CVS] cvs: php-src(PHP_5_2) /ext/imap php_imap.c
On 2/16/07, Antony Dovgal [EMAIL PROTECTED] wrote: On 02/16/2007 05:04 AM, Ilia Alshanetsky wrote: What version of c-client are you using? For me here the code does not show any errors via valgrind 3.2.3. It's quite old, yes - imap-2004c. imap-2006d works ok in the same time. Ok, I found a solution, this patch fixes it: Yup. Fixes it for my good old cclient-2004g too -Hannes Index: ext/imap/php_imap.c === RCS file: /repository/php-src/ext/imap/php_imap.c,v retrieving revision 1.208.2.7.2.17 diff -u -p -d -r1.208.2.7.2.17 php_imap.c --- ext/imap/php_imap.c 13 Feb 2007 20:12:52 - 1.208.2.7.2.17 +++ ext/imap/php_imap.c 16 Feb 2007 07:04:00 - @@ -2215,7 +2215,7 @@ PHP_FUNCTION(imap_utf8) if (dest.data) { free(dest.data); } - if (src.data) { + if (src.data src.data != dest.data) { free(src.data); } } In c-client sources they use similar if's. -- Wbr, Antony Dovgal -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_2) /ext/imap php_imap.c
tony2001Fri Feb 16 13:28:03 2007 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/imap php_imap.c Log: fix possible double free http://cvs.php.net/viewvc.cgi/php-src/ext/imap/php_imap.c?r1=1.208.2.7.2.18r2=1.208.2.7.2.19diff_format=u Index: php-src/ext/imap/php_imap.c diff -u php-src/ext/imap/php_imap.c:1.208.2.7.2.18 php-src/ext/imap/php_imap.c:1.208.2.7.2.19 --- php-src/ext/imap/php_imap.c:1.208.2.7.2.18 Fri Feb 16 03:32:06 2007 +++ php-src/ext/imap/php_imap.c Fri Feb 16 13:28:03 2007 @@ -26,7 +26,7 @@ | PHP 4.0 updates: Zeev Suraski [EMAIL PROTECTED] | +--+ */ -/* $Id: php_imap.c,v 1.208.2.7.2.18 2007/02/16 03:32:06 iliaa Exp $ */ +/* $Id: php_imap.c,v 1.208.2.7.2.19 2007/02/16 13:28:03 tony2001 Exp $ */ #define IMAP41 @@ -2215,7 +2215,7 @@ if (dest.data) { free(dest.data); } - if (src.data) { + if (src.data src.data != dest.data) { free(src.data); } } -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-CVS] cvs: php-src(PHP_5_2) /ext/imap php_imap.c
On 02/13/2007 11:12 PM, Ilia Alshanetsky wrote: http://cvs.php.net/viewvc.cgi/php-src/ext/imap/php_imap.c?r1=1.208.2.7.2.16r2=1.208.2.7.2.17diff_format=u Index: php-src/ext/imap/php_imap.c diff -u php-src/ext/imap/php_imap.c:1.208.2.7.2.16 php-src/ext/imap/php_imap.c:1.208.2.7.2.17 --- php-src/ext/imap/php_imap.c:1.208.2.7.2.16 Thu Jan 18 14:03:38 2007 +++ php-src/ext/imap/php_imap.c Tue Feb 13 20:12:52 2007 @@ -26,7 +26,7 @@ | PHP 4.0 updates: Zeev Suraski [EMAIL PROTECTED] | +--+ */ -/* $Id: php_imap.c,v 1.208.2.7.2.16 2007/01/18 14:03:38 tony2001 Exp $ */ +/* $Id: php_imap.c,v 1.208.2.7.2.17 2007/02/13 20:12:52 iliaa Exp $ */ #define IMAP41 @@ -2215,6 +2215,9 @@ if (dest.data) { free(dest.data); } + if (src.data) { + free(src.data); + } } /* }}} */ This is what I see after this patch (confirmed by Hannes): # ./sapi/cli/php -r 'var_dump(imap_utf8());' *** glibc detected *** double free or corruption (fasttop): 0x08458658 *** Aborted ==8685== Invalid free() / delete / delete[] ==8685==at 0x401D297: free (vg_replace_malloc.c:233) ==8685==by 0x8106713: zif_imap_utf8 (php_imap.c:2219) ==8685==by 0x828ED19: zend_do_fcall_common_helper_SPEC (zend_vm_execute.h:200) ==8685==by 0x8291D3F: ZEND_DO_FCALL_SPEC_CONST_HANDLER (zend_vm_execute.h:1681) ==8685==by 0x828E92C: execute (zend_vm_execute.h:92) ==8685==by 0x8263860: zend_eval_string (zend_execute_API.c:1151) ==8685==by 0x82639C0: zend_eval_string_ex (zend_execute_API.c:1185) ==8685==by 0x82D5B83: main (php_cli.c:1160) ==8685== Address 0x4708D90 is 0 bytes inside a block of size 1 free'd ==8685==at 0x401D297: free (vg_replace_malloc.c:233) ==8685==by 0x81066FF: zif_imap_utf8 (php_imap.c:2216) ==8685==by 0x828ED19: zend_do_fcall_common_helper_SPEC (zend_vm_execute.h:200) ==8685==by 0x8291D3F: ZEND_DO_FCALL_SPEC_CONST_HANDLER (zend_vm_execute.h:1681) ==8685==by 0x828E92C: execute (zend_vm_execute.h:92) ==8685==by 0x8263860: zend_eval_string (zend_execute_API.c:1151) ==8685==by 0x82639C0: zend_eval_string_ex (zend_execute_API.c:1185) ==8685==by 0x82D5B83: main (php_cli.c:1160) -- Wbr, Antony Dovgal -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-CVS] cvs: php-src(PHP_5_2) /ext/imap php_imap.c
What version of c-client are you using? For me here the code does not show any errors via valgrind 3.2.3. On 15-Feb-07, at 3:04 PM, Antony Dovgal wrote: On 02/13/2007 11:12 PM, Ilia Alshanetsky wrote: http://cvs.php.net/viewvc.cgi/php-src/ext/imap/php_imap.c? r1=1.208.2.7.2.16r2=1.208.2.7.2.17diff_format=u Index: php-src/ext/imap/php_imap.c diff -u php-src/ext/imap/php_imap.c:1.208.2.7.2.16 php-src/ext/ imap/php_imap.c:1.208.2.7.2.17 --- php-src/ext/imap/php_imap.c:1.208.2.7.2.16 Thu Jan 18 14:03:38 2007 +++ php-src/ext/imap/php_imap.c Tue Feb 13 20:12:52 2007 @@ -26,7 +26,7 @@ | PHP 4.0 updates: Zeev Suraski [EMAIL PROTECTED] | + --+ */ -/* $Id: php_imap.c,v 1.208.2.7.2.16 2007/01/18 14:03:38 tony2001 Exp $ */ +/* $Id: php_imap.c,v 1.208.2.7.2.17 2007/02/13 20:12:52 iliaa Exp $ */ #define IMAP41 @@ -2215,6 +2215,9 @@ if (dest.data) { free(dest.data); } + if (src.data) { + free(src.data); + } } /* }}} */ This is what I see after this patch (confirmed by Hannes): # ./sapi/cli/php -r 'var_dump(imap_utf8());' *** glibc detected *** double free or corruption (fasttop): 0x08458658 *** Aborted ==8685== Invalid free() / delete / delete[] ==8685==at 0x401D297: free (vg_replace_malloc.c:233) ==8685==by 0x8106713: zif_imap_utf8 (php_imap.c:2219) ==8685==by 0x828ED19: zend_do_fcall_common_helper_SPEC (zend_vm_execute.h:200) ==8685==by 0x8291D3F: ZEND_DO_FCALL_SPEC_CONST_HANDLER (zend_vm_execute.h:1681) ==8685==by 0x828E92C: execute (zend_vm_execute.h:92) ==8685==by 0x8263860: zend_eval_string (zend_execute_API.c:1151) ==8685==by 0x82639C0: zend_eval_string_ex (zend_execute_API.c: 1185) ==8685==by 0x82D5B83: main (php_cli.c:1160) ==8685== Address 0x4708D90 is 0 bytes inside a block of size 1 free'd ==8685==at 0x401D297: free (vg_replace_malloc.c:233) ==8685==by 0x81066FF: zif_imap_utf8 (php_imap.c:2216) ==8685==by 0x828ED19: zend_do_fcall_common_helper_SPEC (zend_vm_execute.h:200) ==8685==by 0x8291D3F: ZEND_DO_FCALL_SPEC_CONST_HANDLER (zend_vm_execute.h:1681) ==8685==by 0x828E92C: execute (zend_vm_execute.h:92) ==8685==by 0x8263860: zend_eval_string (zend_execute_API.c:1151) ==8685==by 0x82639C0: zend_eval_string_ex (zend_execute_API.c: 1185) ==8685==by 0x82D5B83: main (php_cli.c:1160) -- Wbr, Antony Dovgal Ilia Alshanetsky -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_2) /ext/imap php_imap.c
iliaa Fri Feb 16 03:32:07 2007 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/imap php_imap.c Log: Reduce stack usage improve boundary checks http://cvs.php.net/viewvc.cgi/php-src/ext/imap/php_imap.c?r1=1.208.2.7.2.17r2=1.208.2.7.2.18diff_format=u Index: php-src/ext/imap/php_imap.c diff -u php-src/ext/imap/php_imap.c:1.208.2.7.2.17 php-src/ext/imap/php_imap.c:1.208.2.7.2.18 --- php-src/ext/imap/php_imap.c:1.208.2.7.2.17 Tue Feb 13 20:12:52 2007 +++ php-src/ext/imap/php_imap.c Fri Feb 16 03:32:06 2007 @@ -26,7 +26,7 @@ | PHP 4.0 updates: Zeev Suraski [EMAIL PROTECTED] | +--+ */ -/* $Id: php_imap.c,v 1.208.2.7.2.17 2007/02/13 20:12:52 iliaa Exp $ */ +/* $Id: php_imap.c,v 1.208.2.7.2.18 2007/02/16 03:32:06 iliaa Exp $ */ #define IMAP41 @@ -2956,7 +2956,7 @@ BODY *bod=NULL, *topbod=NULL; PART *mypart=NULL, *part; PARAMETER *param, *disp_param = NULL, *custom_headers_param = NULL, *tmp_param = NULL; - char tmp[SENDBUFLEN + 1], *mystring=NULL, *t=NULL, *tempstring=NULL; + char *tmp=NULL, *mystring=NULL, *t=NULL, *tempstring=NULL; int toppart = 0; if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, envelope, body) == FAILURE) { @@ -3258,6 +3258,9 @@ } rfc822_encode_body_7bit(env, topbod); + + tmp = emalloc(SENDBUFLEN + 1); + rfc822_header(tmp, env, topbod); /* add custom envelope headers */ @@ -3307,7 +3310,7 @@ /* yucky default */ if (!cookie) { cookie = -; - } else if (strlen(cookie) (sizeof(tmp) - 2 - 2)) { /* validate cookie length -- + CRLF */ + } else if (strlen(cookie) (SENDBUFLEN - 2 - 2 - 2)) { /* validate cookie length -- + CRLF * 2 */ php_error_docref(NULL TSRMLS_CC, E_WARNING, The boudary should be no longer then 4kb); RETVAL_FALSE; goto done; @@ -3315,18 +3318,14 @@ /* for each part */ do { - t=tmp; - /* build cookie */ - sprintf(t, --%s%s, cookie, CRLF); - + t = tmp; + /* append mini-header */ + *t = '\0'; rfc822_write_body_header(t, part-body); - /* write terminating blank line */ - strcat(t, CRLF); - /* output cookie, mini-header, and contents */ - spprintf(tempstring, 0, %s%s, mystring, tmp); + spprintf(tempstring, 0, %s--%s%s%s%s, mystring, cookie, CRLF, tmp, CRLF); efree(mystring); mystring=tempstring; @@ -3342,9 +3341,9 @@ efree(mystring); mystring=tempstring; } else if (bod) { - spprintf(tempstring, 0, %s%s%s, mystring, bod-contents.text.data, CRLF); - efree(mystring); - mystring=tempstring; + spprintf(tempstring, 0, %s%s%s, mystring, bod-contents.text.data, CRLF); + efree(mystring); + mystring=tempstring; } else { efree(mystring); RETVAL_FALSE; @@ -3353,6 +3352,9 @@ RETVAL_STRING(tempstring, 0); done: + if (tmp) { + efree(tmp); + } mail_free_body(topbod); mail_free_envelope(env); } -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-CVS] cvs: php-src(PHP_5_2) /ext/imap php_imap.c
On 02/16/2007 05:04 AM, Ilia Alshanetsky wrote: What version of c-client are you using? For me here the code does not show any errors via valgrind 3.2.3. It's quite old, yes - imap-2004c. imap-2006d works ok in the same time. Ok, I found a solution, this patch fixes it: Index: ext/imap/php_imap.c === RCS file: /repository/php-src/ext/imap/php_imap.c,v retrieving revision 1.208.2.7.2.17 diff -u -p -d -r1.208.2.7.2.17 php_imap.c --- ext/imap/php_imap.c 13 Feb 2007 20:12:52 - 1.208.2.7.2.17 +++ ext/imap/php_imap.c 16 Feb 2007 07:04:00 - @@ -2215,7 +2215,7 @@ PHP_FUNCTION(imap_utf8) if (dest.data) { free(dest.data); } - if (src.data) { + if (src.data src.data != dest.data) { free(src.data); } } In c-client sources they use similar if's. -- Wbr, Antony Dovgal -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_2) /ext/imap php_imap.c
iliaa Tue Feb 13 20:12:52 2007 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/imap php_imap.c Log: Fixed a memory leak inside imap_utf8() http://cvs.php.net/viewvc.cgi/php-src/ext/imap/php_imap.c?r1=1.208.2.7.2.16r2=1.208.2.7.2.17diff_format=u Index: php-src/ext/imap/php_imap.c diff -u php-src/ext/imap/php_imap.c:1.208.2.7.2.16 php-src/ext/imap/php_imap.c:1.208.2.7.2.17 --- php-src/ext/imap/php_imap.c:1.208.2.7.2.16 Thu Jan 18 14:03:38 2007 +++ php-src/ext/imap/php_imap.c Tue Feb 13 20:12:52 2007 @@ -26,7 +26,7 @@ | PHP 4.0 updates: Zeev Suraski [EMAIL PROTECTED] | +--+ */ -/* $Id: php_imap.c,v 1.208.2.7.2.16 2007/01/18 14:03:38 tony2001 Exp $ */ +/* $Id: php_imap.c,v 1.208.2.7.2.17 2007/02/13 20:12:52 iliaa Exp $ */ #define IMAP41 @@ -2215,6 +2215,9 @@ if (dest.data) { free(dest.data); } + if (src.data) { + free(src.data); + } } /* }}} */ -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_2) /ext/imap php_imap.c
tony2001Thu Jan 18 14:03:38 2007 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/imap php_imap.c Log: MFH: use strlcat() http://cvs.php.net/viewvc.cgi/php-src/ext/imap/php_imap.c?r1=1.208.2.7.2.15r2=1.208.2.7.2.16diff_format=u Index: php-src/ext/imap/php_imap.c diff -u php-src/ext/imap/php_imap.c:1.208.2.7.2.15 php-src/ext/imap/php_imap.c:1.208.2.7.2.16 --- php-src/ext/imap/php_imap.c:1.208.2.7.2.15 Mon Jan 1 09:36:01 2007 +++ php-src/ext/imap/php_imap.c Thu Jan 18 14:03:38 2007 @@ -26,7 +26,7 @@ | PHP 4.0 updates: Zeev Suraski [EMAIL PROTECTED] | +--+ */ -/* $Id: php_imap.c,v 1.208.2.7.2.15 2007/01/01 09:36:01 sebastian Exp $ */ +/* $Id: php_imap.c,v 1.208.2.7.2.16 2007/01/18 14:03:38 tony2001 Exp $ */ #define IMAP41 @@ -1182,13 +1182,13 @@ if ((i = cache-user_flags)) { strcat(tmp, {); while (i) { - strcat(tmp, imap_le_struct-imap_stream-user_flags[find_rightmost_bit (i)]); - if (i) strcat(tmp, ); + strlcat(tmp, imap_le_struct-imap_stream-user_flags[find_rightmost_bit (i)], sizeof(tmp)); + if (i) strlcat(tmp, , sizeof(tmp)); } - strcat(tmp, } ); + strlcat(tmp, } , sizeof(tmp)); } mail_fetchsubject(t = tmp + strlen(tmp), imap_le_struct-imap_stream, msgno, (long)25); - sprintf(t += strlen(t), (%ld chars), cache-rfc822_size); + snprintf(t += strlen(t), sizeof(tmp) - strlen(tmp), (%ld chars), cache-rfc822_size); add_next_index_string(return_value, tmp, 1); } } @@ -3387,14 +3387,14 @@ #define PHP_IMAP_CLEAN if (bufferTo) efree(bufferTo); if (bufferCc) efree(bufferCc); if (bufferBcc) efree(bufferBcc); if (bufferHeader) efree(bufferHeader); #define PHP_IMAP_BAD_DEST PHP_IMAP_CLEAN; efree(tempMailTo); return (BAD_MSG_DESTINATION); - bufferHeader = (char *)emalloc(bufferLen); + bufferHeader = (char *)emalloc(bufferLen + 1); memset(bufferHeader, 0, bufferLen); if (to *to) { - strcat(bufferHeader, To: ); - strcat(bufferHeader, to); - strcat(bufferHeader, \r\n); + strlcat(bufferHeader, To: , bufferLen + 1); + strlcat(bufferHeader, to, bufferLen + 1); + strlcat(bufferHeader, \r\n, bufferLen + 1); tempMailTo = estrdup(to); - bufferTo = (char *)emalloc(strlen(to)); + bufferTo = (char *)emalloc(strlen(to) + 1); offset = 0; addr = NULL; rfc822_parse_adrlist(addr, tempMailTo, NULL); @@ -3413,11 +3413,11 @@ } if (cc *cc) { - strcat(bufferHeader, Cc: ); - strcat(bufferHeader, cc); - strcat(bufferHeader, \r\n); + strlcat(bufferHeader, Cc: , bufferLen + 1); + strlcat(bufferHeader, cc, bufferLen + 1); + strlcat(bufferHeader, \r\n, bufferLen + 1); tempMailTo = estrdup(cc); - bufferCc = (char *)emalloc(strlen(cc)); + bufferCc = (char *)emalloc(strlen(cc) + 1); offset = 0; addr = NULL; rfc822_parse_adrlist(addr, tempMailTo, NULL); @@ -3437,7 +3437,7 @@ if (bcc *bcc) { tempMailTo = estrdup(bcc); - bufferBcc = (char *)emalloc(strlen(bcc)); + bufferBcc = (char *)emalloc(strlen(bcc) + 1); offset = 0; addr = NULL; rfc822_parse_adrlist(addr, tempMailTo, NULL); @@ -3456,7 +3456,7 @@ } if (headers *headers) { - strcat(bufferHeader, headers); + strlcat(bufferHeader, headers, bufferLen + 1); } if (TSendMail(INI_STR(SMTP), tsm_err, tsm_errmsg, bufferHeader, subject, bufferTo, message, bufferCc, bufferBcc, rpath TSRMLS_CC) != SUCCESS) { -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_2) /ext/imap php_imap.c
iliaa Mon Dec 25 14:23:18 2006 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/imap php_imap.c Log: Define SENDBUFLEN for older c-client libs http://cvs.php.net/viewvc.cgi/php-src/ext/imap/php_imap.c?r1=1.208.2.7.2.12r2=1.208.2.7.2.13diff_format=u Index: php-src/ext/imap/php_imap.c diff -u php-src/ext/imap/php_imap.c:1.208.2.7.2.12 php-src/ext/imap/php_imap.c:1.208.2.7.2.13 --- php-src/ext/imap/php_imap.c:1.208.2.7.2.12 Sun Dec 24 22:15:06 2006 +++ php-src/ext/imap/php_imap.c Mon Dec 25 14:23:18 2006 @@ -26,7 +26,7 @@ | PHP 4.0 updates: Zeev Suraski [EMAIL PROTECTED] | +--+ */ -/* $Id: php_imap.c,v 1.208.2.7.2.12 2006/12/24 22:15:06 iliaa Exp $ */ +/* $Id: php_imap.c,v 1.208.2.7.2.13 2006/12/25 14:23:18 iliaa Exp $ */ #define IMAP41 @@ -62,6 +62,9 @@ #define CRLF_LEN sizeof(\015\012) - 1 #define PHP_EXPUNGE 32768 #define PHP_IMAP_ADDRESS_SIZE_BUF 10 +#ifdef SENDBUFLEN +#define SENDBUFLEN 16385 +#endif static void _php_make_header_object(zval *myzvalue, ENVELOPE *en TSRMLS_DC); static void _php_imap_add_body(zval *arg, BODY *body TSRMLS_DC); -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-CVS] cvs: php-src(PHP_5_2) /ext/imap php_imap.c
On 24-Dec-06, at 8:35 PM, Hannes Magnusson wrote: Hi Ilia My c-client library (2004g) from BSD ports doesn't have SENDBUFLEN defined... I've added a handler for older c-client libs. Ilia Alshanetsky -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_2) /ext/imap php_imap.c
tony2001Mon Dec 25 15:28:57 2006 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/imap php_imap.c Log: MFH http://cvs.php.net/viewvc.cgi/php-src/ext/imap/php_imap.c?r1=1.208.2.7.2.13r2=1.208.2.7.2.14diff_format=u Index: php-src/ext/imap/php_imap.c diff -u php-src/ext/imap/php_imap.c:1.208.2.7.2.13 php-src/ext/imap/php_imap.c:1.208.2.7.2.14 --- php-src/ext/imap/php_imap.c:1.208.2.7.2.13 Mon Dec 25 14:23:18 2006 +++ php-src/ext/imap/php_imap.c Mon Dec 25 15:28:57 2006 @@ -26,7 +26,7 @@ | PHP 4.0 updates: Zeev Suraski [EMAIL PROTECTED] | +--+ */ -/* $Id: php_imap.c,v 1.208.2.7.2.13 2006/12/25 14:23:18 iliaa Exp $ */ +/* $Id: php_imap.c,v 1.208.2.7.2.14 2006/12/25 15:28:57 tony2001 Exp $ */ #define IMAP41 @@ -62,7 +62,7 @@ #define CRLF_LEN sizeof(\015\012) - 1 #define PHP_EXPUNGE 32768 #define PHP_IMAP_ADDRESS_SIZE_BUF 10 -#ifdef SENDBUFLEN +#ifndef SENDBUFLEN #define SENDBUFLEN 16385 #endif -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_2) /ext/imap php_imap.c
iliaa Sun Dec 24 22:15:07 2006 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/imap php_imap.c Log: Fixed buffer boundary protection http://cvs.php.net/viewvc.cgi/php-src/ext/imap/php_imap.c?r1=1.208.2.7.2.11r2=1.208.2.7.2.12diff_format=u Index: php-src/ext/imap/php_imap.c diff -u php-src/ext/imap/php_imap.c:1.208.2.7.2.11 php-src/ext/imap/php_imap.c:1.208.2.7.2.12 --- php-src/ext/imap/php_imap.c:1.208.2.7.2.11 Sun Dec 17 18:22:53 2006 +++ php-src/ext/imap/php_imap.c Sun Dec 24 22:15:06 2006 @@ -26,7 +26,7 @@ | PHP 4.0 updates: Zeev Suraski [EMAIL PROTECTED] | +--+ */ -/* $Id: php_imap.c,v 1.208.2.7.2.11 2006/12/17 18:22:53 iliaa Exp $ */ +/* $Id: php_imap.c,v 1.208.2.7.2.12 2006/12/24 22:15:06 iliaa Exp $ */ #define IMAP41 @@ -2950,7 +2950,7 @@ BODY *bod=NULL, *topbod=NULL; PART *mypart=NULL, *part; PARAMETER *param, *disp_param = NULL, *custom_headers_param = NULL, *tmp_param = NULL; - char tmp[8 * MAILTMPLEN], *mystring=NULL, *t=NULL, *tempstring=NULL; + char tmp[SENDBUFLEN + 1], *mystring=NULL, *t=NULL, *tempstring=NULL; int toppart = 0; if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, envelope, body) == FAILURE) { @@ -3251,8 +3251,8 @@ goto done; } - rfc822_encode_body_7bit(env, topbod); - rfc822_header (tmp, env, topbod); + rfc822_encode_body_7bit(env, topbod); + rfc822_header(tmp, env, topbod); /* add custom envelope headers */ if (custom_headers_param) { @@ -3301,43 +3301,42 @@ /* yucky default */ if (!cookie) { cookie = -; + } else if (strlen(cookie) (sizeof(tmp) - 2 - 2)) { /* validate cookie length -- + CRLF */ + php_error_docref(NULL TSRMLS_CC, E_WARNING, The boudary should be no longer then 4kb); + RETVAL_FALSE; + goto done; } /* for each part */ do { t=tmp; /* build cookie */ - sprintf (t, --%s%s, cookie, CRLF); + sprintf(t, --%s%s, cookie, CRLF); /* append mini-header */ rfc822_write_body_header(t, part-body); /* write terminating blank line */ - strcat (t, CRLF); + strcat(t, CRLF); /* output cookie, mini-header, and contents */ - tempstring=emalloc(strlen(mystring)+strlen(tmp)+1); - sprintf(tempstring, %s%s, mystring, tmp); + spprintf(tempstring, 0, %s%s, mystring, tmp); efree(mystring); mystring=tempstring; bod=part-body; - tempstring=emalloc(strlen(bod-contents.text.data)+strlen(CRLF)+strlen(mystring)+1); - sprintf(tempstring, %s%s%s, mystring, bod-contents.text.data, CRLF); + spprintf(tempstring, 0, %s%s%s, mystring, bod-contents.text.data, CRLF); efree(mystring); mystring=tempstring; } while ((part = part-next)); /* until done */ /* output trailing cookie */ - sprintf(tmp, --%s--, cookie); - tempstring=emalloc(strlen(tmp)+strlen(CRLF)+strlen(mystring)+1); - sprintf(tempstring, %s%s%s, mystring, tmp, CRLF); + spprintf(tempstring, 0, %s--%s--%s, mystring, tmp, CRLF); efree(mystring); mystring=tempstring; } else if (bod) { - tempstring = emalloc(strlen(bod-contents.text.data)+strlen(CRLF)+strlen(mystring)+1); - sprintf(tempstring, %s%s%s, mystring, bod-contents.text.data, CRLF); + spprintf(tempstring, 0, %s%s%s, mystring, bod-contents.text.data, CRLF); efree(mystring); mystring=tempstring; } else { -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
Re: [PHP-CVS] cvs: php-src(PHP_5_2) /ext/imap php_imap.c
Hi Ilia My c-client library (2004g) from BSD ports doesn't have SENDBUFLEN defined... -Hannes On 12/24/06, Ilia Alshanetsky [EMAIL PROTECTED] wrote: iliaa Sun Dec 24 22:15:07 2006 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/imap php_imap.c Log: Fixed buffer boundary protection http://cvs.php.net/viewvc.cgi/php-src/ext/imap/php_imap.c?r1=1.208.2.7.2.11r2=1.208.2.7.2.12diff_format=u Index: php-src/ext/imap/php_imap.c diff -u php-src/ext/imap/php_imap.c:1.208.2.7.2.11 php-src/ext/imap/php_imap.c:1.208.2.7.2.12 --- php-src/ext/imap/php_imap.c:1.208.2.7.2.11 Sun Dec 17 18:22:53 2006 +++ php-src/ext/imap/php_imap.c Sun Dec 24 22:15:06 2006 @@ -26,7 +26,7 @@ | PHP 4.0 updates: Zeev Suraski [EMAIL PROTECTED] | +--+ */ -/* $Id: php_imap.c,v 1.208.2.7.2.11 2006/12/17 18:22:53 iliaa Exp $ */ +/* $Id: php_imap.c,v 1.208.2.7.2.12 2006/12/24 22:15:06 iliaa Exp $ */ #define IMAP41 @@ -2950,7 +2950,7 @@ BODY *bod=NULL, *topbod=NULL; PART *mypart=NULL, *part; PARAMETER *param, *disp_param = NULL, *custom_headers_param = NULL, *tmp_param = NULL; - char tmp[8 * MAILTMPLEN], *mystring=NULL, *t=NULL, *tempstring=NULL; + char tmp[SENDBUFLEN + 1], *mystring=NULL, *t=NULL, *tempstring=NULL; int toppart = 0; if (ZEND_NUM_ARGS() != 2 || zend_get_parameters_ex(2, envelope, body) == FAILURE) { @@ -3251,8 +3251,8 @@ goto done; } - rfc822_encode_body_7bit(env, topbod); - rfc822_header (tmp, env, topbod); + rfc822_encode_body_7bit(env, topbod); + rfc822_header(tmp, env, topbod); /* add custom envelope headers */ if (custom_headers_param) { @@ -3301,43 +3301,42 @@ /* yucky default */ if (!cookie) { cookie = -; + } else if (strlen(cookie) (sizeof(tmp) - 2 - 2)) { /* validate cookie length -- + CRLF */ + php_error_docref(NULL TSRMLS_CC, E_WARNING, The boudary should be no longer then 4kb); + RETVAL_FALSE; + goto done; } /* for each part */ do { t=tmp; /* build cookie */ - sprintf (t, --%s%s, cookie, CRLF); + sprintf(t, --%s%s, cookie, CRLF); /* append mini-header */ rfc822_write_body_header(t, part-body); /* write terminating blank line */ - strcat (t, CRLF); + strcat(t, CRLF); /* output cookie, mini-header, and contents */ - tempstring=emalloc(strlen(mystring)+strlen(tmp)+1); - sprintf(tempstring, %s%s, mystring, tmp); + spprintf(tempstring, 0, %s%s, mystring, tmp); efree(mystring); mystring=tempstring; bod=part-body; - tempstring=emalloc(strlen(bod-contents.text.data)+strlen(CRLF)+strlen(mystring)+1); - sprintf(tempstring, %s%s%s, mystring, bod-contents.text.data, CRLF); + spprintf(tempstring, 0, %s%s%s, mystring, bod-contents.text.data, CRLF); efree(mystring); mystring=tempstring; } while ((part = part-next)); /* until done */ /* output trailing cookie */ - sprintf(tmp, --%s--, cookie); - tempstring=emalloc(strlen(tmp)+strlen(CRLF)+strlen(mystring)+1); - sprintf(tempstring, %s%s%s, mystring, tmp, CRLF); + spprintf(tempstring, 0, %s--%s--%s, mystring, tmp, CRLF); efree(mystring); mystring=tempstring; } else if (bod) { - tempstring = emalloc(strlen(bod-contents.text.data)+strlen(CRLF)+strlen(mystring)+1); - sprintf(tempstring, %s%s%s, mystring, bod-contents.text.data, CRLF); + spprintf(tempstring, 0, %s%s%s, mystring, bod-contents.text.data, CRLF); efree(mystring); mystring=tempstring; } else { -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_2) /ext/imap php_imap.c
tony2001Fri Nov 24 10:28:51 2006 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/imap php_imap.c Log: fix #39613 (Possible segfault in imap initialization due to missing module dependency) patch by wharmby at uk dot ibm dot com http://cvs.php.net/viewvc.cgi/php-src/ext/imap/php_imap.c?r1=1.208.2.7.2.9r2=1.208.2.7.2.10diff_format=u Index: php-src/ext/imap/php_imap.c diff -u php-src/ext/imap/php_imap.c:1.208.2.7.2.9 php-src/ext/imap/php_imap.c:1.208.2.7.2.10 --- php-src/ext/imap/php_imap.c:1.208.2.7.2.9 Mon Nov 6 16:44:03 2006 +++ php-src/ext/imap/php_imap.c Fri Nov 24 10:28:51 2006 @@ -26,7 +26,7 @@ | PHP 4.0 updates: Zeev Suraski [EMAIL PROTECTED] | +--+ */ -/* $Id: php_imap.c,v 1.208.2.7.2.9 2006/11/06 16:44:03 iliaa Exp $ */ +/* $Id: php_imap.c,v 1.208.2.7.2.10 2006/11/24 10:28:51 tony2001 Exp $ */ #define IMAP41 @@ -169,10 +169,18 @@ }; /* }}} */ +/* {{{ imap dependencies */ +static zend_module_dep imap_deps[] = { + ZEND_MOD_REQUIRED(standard) + {NULL, NULL, NULL} +}; +/* }}} */ + /* {{{ imap_module_entry */ zend_module_entry imap_module_entry = { - STANDARD_MODULE_HEADER, + STANDARD_MODULE_HEADER_EX, NULL, + imap_deps, imap, imap_functions, PHP_MINIT(imap), -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_2) /ext/imap php_imap.c
iliaa Mon Nov 6 16:44:03 2006 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/imap php_imap.c Log: param parsing fix # Thanks Hannes http://cvs.php.net/viewvc.cgi/php-src/ext/imap/php_imap.c?r1=1.208.2.7.2.8r2=1.208.2.7.2.9diff_format=u Index: php-src/ext/imap/php_imap.c diff -u php-src/ext/imap/php_imap.c:1.208.2.7.2.8 php-src/ext/imap/php_imap.c:1.208.2.7.2.9 --- php-src/ext/imap/php_imap.c:1.208.2.7.2.8 Sun Nov 5 18:31:41 2006 +++ php-src/ext/imap/php_imap.c Mon Nov 6 16:44:03 2006 @@ -26,7 +26,7 @@ | PHP 4.0 updates: Zeev Suraski [EMAIL PROTECTED] | +--+ */ -/* $Id: php_imap.c,v 1.208.2.7.2.8 2006/11/05 18:31:41 iliaa Exp $ */ +/* $Id: php_imap.c,v 1.208.2.7.2.9 2006/11/06 16:44:03 iliaa Exp $ */ #define IMAP41 @@ -743,7 +743,7 @@ long cl_flags=NIL; int myargc = ZEND_NUM_ARGS(); - if (myargc 3 || myargc 4 || zend_get_parameters_ex(myargc, mailbox, user, passwd, options, retries) == FAILURE) { + if (myargc 3 || myargc 5 || zend_get_parameters_ex(myargc, mailbox, user, passwd, options, retries) == FAILURE) { ZEND_WRONG_PARAM_COUNT(); } -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_2) /ext/imap php_imap.c
tony2001Thu Oct 5 14:25:42 2006 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/imap php_imap.c Log: fix build with new version of c-client http://cvs.php.net/viewvc.cgi/php-src/ext/imap/php_imap.c?r1=1.208.2.7.2.6r2=1.208.2.7.2.7diff_format=u Index: php-src/ext/imap/php_imap.c diff -u php-src/ext/imap/php_imap.c:1.208.2.7.2.6 php-src/ext/imap/php_imap.c:1.208.2.7.2.7 --- php-src/ext/imap/php_imap.c:1.208.2.7.2.6 Sun Sep 24 18:06:37 2006 +++ php-src/ext/imap/php_imap.c Thu Oct 5 14:25:41 2006 @@ -26,7 +26,7 @@ | PHP 4.0 updates: Zeev Suraski [EMAIL PROTECTED] | +--+ */ -/* $Id: php_imap.c,v 1.208.2.7.2.6 2006/09/24 18:06:37 iliaa Exp $ */ +/* $Id: php_imap.c,v 1.208.2.7.2.7 2006/10/05 14:25:41 tony2001 Exp $ */ #define IMAP41 @@ -2181,7 +2181,12 @@ dest.size = 0; cpytxt(src, Z_STRVAL_PP(str), Z_STRLEN_PP(str)); + +#ifndef HAVE_NEW_MIME2TEXT utf8_mime2text(src, dest); +#else + utf8_mime2text(src, dest, U8T_CANONICAL); +#endif RETVAL_STRINGL(dest.data, dest.size, 1); if (dest.data) { free(dest.data); -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_2) /ext/imap php_imap.c /ext/imap/tests imap_utf8.phpt
tony2001Tue Sep 5 11:24:49 2006 UTC Added files: (Branch: PHP_5_2) /php-src/ext/imap/tests imap_utf8.phpt Modified files: /php-src/ext/imap php_imap.c Log: fix leak in imap_utf8(), avoid extra strlen() call add test http://cvs.php.net/viewvc.cgi/php-src/ext/imap/php_imap.c?r1=1.208.2.7.2.4r2=1.208.2.7.2.5diff_format=u Index: php-src/ext/imap/php_imap.c diff -u php-src/ext/imap/php_imap.c:1.208.2.7.2.4 php-src/ext/imap/php_imap.c:1.208.2.7.2.5 --- php-src/ext/imap/php_imap.c:1.208.2.7.2.4 Thu Aug 31 16:15:24 2006 +++ php-src/ext/imap/php_imap.c Tue Sep 5 11:24:49 2006 @@ -26,7 +26,7 @@ | PHP 4.0 updates: Zeev Suraski [EMAIL PROTECTED] | +--+ */ -/* $Id: php_imap.c,v 1.208.2.7.2.4 2006/08/31 16:15:24 tony2001 Exp $ */ +/* $Id: php_imap.c,v 1.208.2.7.2.5 2006/09/05 11:24:49 tony2001 Exp $ */ #define IMAP41 @@ -2178,7 +2178,10 @@ cpytxt(src, Z_STRVAL_PP(str), Z_STRLEN_PP(str)); utf8_mime2text(src, dest); - RETURN_STRINGL(dest.data, strlen(dest.data), 1); + RETVAL_STRINGL(dest.data, dest.size, 1); + if (dest.data) { + free(dest.data); + } } /* }}} */ http://cvs.php.net/viewvc.cgi/php-src/ext/imap/tests/imap_utf8.phpt?view=markuprev=1.1 Index: php-src/ext/imap/tests/imap_utf8.phpt +++ php-src/ext/imap/tests/imap_utf8.phpt --TEST-- imap_utf8() tests --SKIPIF-- ?php if (!extension_loaded(imap)) print skip; ? --FILE-- ?php var_dump(imap_utf8()); var_dump(imap_utf8(1)); var_dump(imap_utf8(array(1,2))); var_dump(imap_utf8(test)); echo Done\n; ? --EXPECTF-- string(0) string(1) 1 Notice: Array to string conversion in %s on line %d string(5) Array string(4) test Done --UEXPECTF-- string(0) string(1) 1 Notice: Array to string conversion in %s on line %d string(5) Array string(4) test Done -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php
[PHP-CVS] cvs: php-src(PHP_5_2) /ext/imap php_imap.c /ext/mbstring mbstring.c /ext/oci8 oci8_statement.c /ext/posix posix.c /ext/reflection php_reflection.c /ext/sockets sockets.c
tony2001Thu Aug 31 16:15:25 2006 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/imap php_imap.c /php-src/ext/mbstring mbstring.c /php-src/ext/oci8 oci8_statement.c /php-src/ext/posix posix.c /php-src/ext/reflection php_reflection.c /php-src/ext/socketssockets.c Log: last portion of z/Z fixes http://cvs.php.net/viewvc.cgi/php-src/ext/imap/php_imap.c?r1=1.208.2.7.2.3r2=1.208.2.7.2.4diff_format=u Index: php-src/ext/imap/php_imap.c diff -u php-src/ext/imap/php_imap.c:1.208.2.7.2.3 php-src/ext/imap/php_imap.c:1.208.2.7.2.4 --- php-src/ext/imap/php_imap.c:1.208.2.7.2.3 Fri Aug 11 15:07:29 2006 +++ php-src/ext/imap/php_imap.c Thu Aug 31 16:15:24 2006 @@ -26,7 +26,7 @@ | PHP 4.0 updates: Zeev Suraski [EMAIL PROTECTED] | +--+ */ -/* $Id: php_imap.c,v 1.208.2.7.2.3 2006/08/11 15:07:29 iliaa Exp $ */ +/* $Id: php_imap.c,v 1.208.2.7.2.4 2006/08/31 16:15:24 tony2001 Exp $ */ #define IMAP41 @@ -1876,14 +1876,14 @@ Save a specific body section to a file */ PHP_FUNCTION(imap_savebody) { - zval *stream, *out; + zval *stream, **out; pils *imap_ptr = NULL; php_stream *writer = NULL; char *section = ; int section_len = 0, close_stream = 1; long msgno, flags = 0; - if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, rzl|sl, stream, out, msgno, section, section_len, flags)) { + if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, rZl|sl, stream, out, msgno, section, section_len, flags)) { RETURN_FALSE; } @@ -1893,17 +1893,17 @@ RETURN_FALSE; } - switch (Z_TYPE_P(out)) + switch (Z_TYPE_PP(out)) { case IS_LONG: case IS_RESOURCE: close_stream = 0; - php_stream_from_zval(writer, out); + php_stream_from_zval(writer, out); break; default: - convert_to_string_ex(out); - writer = php_stream_open_wrapper(Z_STRVAL_P(out), wb, REPORT_ERRORS|ENFORCE_SAFE_MODE, NULL); + convert_to_string_ex(out); + writer = php_stream_open_wrapper(Z_STRVAL_PP(out), wb, REPORT_ERRORS|ENFORCE_SAFE_MODE, NULL); break; } http://cvs.php.net/viewvc.cgi/php-src/ext/mbstring/mbstring.c?r1=1.224.2.22.2.11r2=1.224.2.22.2.12diff_format=u Index: php-src/ext/mbstring/mbstring.c diff -u php-src/ext/mbstring/mbstring.c:1.224.2.22.2.11 php-src/ext/mbstring/mbstring.c:1.224.2.22.2.12 --- php-src/ext/mbstring/mbstring.c:1.224.2.22.2.11 Fri Aug 25 16:26:50 2006 +++ php-src/ext/mbstring/mbstring.c Thu Aug 31 16:15:24 2006 @@ -17,7 +17,7 @@ +--+ */ -/* $Id: mbstring.c,v 1.224.2.22.2.11 2006/08/25 16:26:50 masugata Exp $ */ +/* $Id: mbstring.c,v 1.224.2.22.2.12 2006/08/31 16:15:24 tony2001 Exp $ */ /* * PHP 4 Multibyte String module mbstring @@ -1645,7 +1645,7 @@ mbfl_string haystack, needle; char *enc_name = NULL; int enc_name_len; - zval *zoffset; + zval **zoffset; long offset = 0, str_flg; char *enc_name2 = NULL; int enc_name_len2; @@ -1657,14 +1657,14 @@ needle.no_language = MBSTRG(current_language); needle.no_encoding = MBSTRG(current_internal_encoding); - if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, ss|zs, (char **)haystack.val, haystack.len, (char **)needle.val, needle.len, zoffset, enc_name, enc_name_len) == FAILURE) { + if (zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, ss|Zs, (char **)haystack.val, haystack.len, (char **)needle.val, needle.len, zoffset, enc_name, enc_name_len) == FAILURE) { RETURN_FALSE; } if(ZEND_NUM_ARGS() = 3) { - if (Z_TYPE_P(zoffset) == IS_STRING) { - enc_name2 = Z_STRVAL_P(zoffset); - enc_name_len2 = Z_STRLEN_P(zoffset); + if (Z_TYPE_PP(zoffset) == IS_STRING) { + enc_name2 = Z_STRVAL_PP(zoffset); + enc_name_len2 = Z_STRLEN_PP(zoffset); str_flg = 1; if (enc_name2 != NULL) { @@ -1690,15 +1690,15 @@ } if(str_flg) { - convert_to_long(zoffset); - offset = Z_LVAL_P(zoffset); + convert_to_long_ex(zoffset); + offset = Z_LVAL_PP(zoffset); } else {
[PHP-CVS] cvs: php-src(PHP_5_2) /ext/imap php_imap.c
iliaa Fri Aug 11 15:07:30 2006 UTC Modified files: (Branch: PHP_5_2) /php-src/ext/imap php_imap.c Log: MFB: Extend safe_mode/open_basedir checks to imap_reopen() as well. http://cvs.php.net/viewvc.cgi/php-src/ext/imap/php_imap.c?r1=1.208.2.7.2.2r2=1.208.2.7.2.3diff_format=u Index: php-src/ext/imap/php_imap.c diff -u php-src/ext/imap/php_imap.c:1.208.2.7.2.2 php-src/ext/imap/php_imap.c:1.208.2.7.2.3 --- php-src/ext/imap/php_imap.c:1.208.2.7.2.2 Fri Aug 4 20:31:19 2006 +++ php-src/ext/imap/php_imap.c Fri Aug 11 15:07:29 2006 @@ -26,7 +26,7 @@ | PHP 4.0 updates: Zeev Suraski [EMAIL PROTECTED] | +--+ */ -/* $Id: php_imap.c,v 1.208.2.7.2.2 2006/08/04 20:31:19 iliaa Exp $ */ +/* $Id: php_imap.c,v 1.208.2.7.2.3 2006/08/11 15:07:29 iliaa Exp $ */ #define IMAP41 @@ -826,6 +826,14 @@ } imap_le_struct-flags = cl_flags; } + + /* local filename, need to perform open_basedir and safe_mode checks */ + if (Z_STRVAL_PP(mailbox)[0] != '{' + (php_check_open_basedir(Z_STRVAL_PP(mailbox) TSRMLS_CC) || + (PG(safe_mode) !php_checkuid(Z_STRVAL_PP(mailbox), NULL, CHECKUID_CHECK_FILE_AND_DIR { + RETURN_FALSE; + } + imap_stream = mail_open(imap_le_struct-imap_stream, Z_STRVAL_PP(mailbox), flags); if (imap_stream == NIL) { php_error_docref(NULL TSRMLS_CC, E_WARNING, Couldn't re-open stream); -- PHP CVS Mailing List (http://www.php.net/) To unsubscribe, visit: http://www.php.net/unsub.php