iliaa Tue Oct 8 16:07:53 2002 EDT
Modified files:
/php4/ext/imap php_imap.c
Log:
Fixed bug #19280
Index: php4/ext/imap/php_imap.c
diff -u php4/ext/imap/php_imap.c:1.140 php4/ext/imap/php_imap.c:1.141
--- php4/ext/imap/php_imap.c:1.140 Wed Sep 18 22:32:48 2002
+++ php4/ext/imap/php_imap.c Tue Oct 8 16:07:52 2002
@@ -26,7 +26,7 @@
| PHP 4.0 updates: Zeev Suraski <[EMAIL PROTECTED]> |
+----------------------------------------------------------------------+
*/
-/* $Id: php_imap.c,v 1.140 2002/09/19 02:32:48 kalowsky Exp $ */
+/* $Id: php_imap.c,v 1.141 2002/10/08 20:07:52 iliaa Exp $ */
#define IMAP41
@@ -58,6 +58,7 @@
#define CRLF "\015\012"
#define PHP_EXPUNGE 32768
+#define PHP_IMAP_ADDRESS_SIZE_BUF 10
static void _php_make_header_object(zval *myzvalue, ENVELOPE *en TSRMLS_DC);
static void _php_imap_add_body(zval *arg, BODY *body TSRMLS_DC);
@@ -3546,7 +3547,7 @@
static int _php_imap_address_size (ADDRESS *addresslist)
{
ADDRESS *tmp;
- int ret=0;
+ int ret=0, num_ent=0;
tmp = addresslist;
@@ -3555,10 +3556,15 @@
ret += (tmp->adl) ? strlen(tmp->adl) : 0;
ret += (tmp->mailbox) ? strlen(tmp->mailbox) : 0;
ret += (tmp->host) ? strlen(tmp->host) : 0;
+ num_ent++;
} while ((tmp = tmp->next));
- /* rfc822_write_address_full() needs some extra space for '<>,', etc. */
- ret += (ret) ? MAILTMPLEN : 0;
+ /*
+ * rfc822_write_address_full() needs some extra space for '<>,', etc.
+ * for this perpouse we allocate additional PHP_IMAP_ADDRESS_SIZE_BUF bytes
+ * by default this buffer is 10 bytes long
+ */
+ ret += (ret) ? num_ent*PHP_IMAP_ADDRESS_SIZE_BUF : 0;
return ret;
}
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php