tony2001                Thu 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.15&r2=1.208.2.7.2.16&diff_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

Reply via email to