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

Reply via email to