iliaa Wed May 12 16:17:21 2004 EDT
Modified files: (Branch: PHP_4_3)
/php-src/ext/imap php_imap.c
Log:
MFH: Fixed various possible memory leaks.
http://cvs.php.net/diff.php/php-src/ext/imap/php_imap.c?r1=1.142.2.22&r2=1.142.2.23&ty=u
Index: php-src/ext/imap/php_imap.c
diff -u php-src/ext/imap/php_imap.c:1.142.2.22 php-src/ext/imap/php_imap.c:1.142.2.23
--- php-src/ext/imap/php_imap.c:1.142.2.22 Wed Jan 14 19:36:09 2004
+++ php-src/ext/imap/php_imap.c Wed May 12 16:17:21 2004
@@ -26,7 +26,7 @@
| PHP 4.0 updates: Zeev Suraski <[EMAIL PROTECTED]> |
+----------------------------------------------------------------------+
*/
-/* $Id: php_imap.c,v 1.142.2.22 2004/01/15 00:36:09 iliaa Exp $ */
+/* $Id: php_imap.c,v 1.142.2.23 2004/05/12 20:17:21 iliaa Exp $ */
#define IMAP41
@@ -1314,7 +1314,7 @@
}
array_init(return_value);
- delim = emalloc(2 * sizeof(char));
+ delim = safe_emalloc(2, sizeof(char), 0);
cur=IMAPG(imap_folder_objects);
while (cur != NIL) {
MAKE_STD_ZVAL(mboxob);
@@ -1635,6 +1635,7 @@
}
array_init(return_value);
+ delim = safe_emalloc(2, sizeof(char), 0);
cur=IMAPG(imap_sfolder_objects);
while (cur != NIL) {
MAKE_STD_ZVAL(mboxob);
@@ -3190,6 +3191,9 @@
bufferLen += strlen(cc) + 6;
}
+#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);
memset(bufferHeader, 0, bufferLen);
if (to && *to) {
@@ -3202,9 +3206,9 @@
addr = NULL;
rfc822_parse_adrlist(&addr, tempMailTo, NULL);
while (addr) {
- if (strcmp(addr->host, ERRHOST) == 0)
- return (BAD_MSG_DESTINATION);
- else {
+ if (strcmp(addr->host, ERRHOST) == 0) {
+ PHP_IMAP_BAD_DEST;
+ } else {
offset += sprintf(bufferTo + offset, "[EMAIL
PROTECTED],", addr->mailbox, addr->host);
}
addr = addr->next;
@@ -3225,9 +3229,9 @@
addr = NULL;
rfc822_parse_adrlist(&addr, tempMailTo, NULL);
while (addr) {
- if (strcmp(addr->host, ERRHOST) == 0)
- return (BAD_MSG_DESTINATION);
- else {
+ if (strcmp(addr->host, ERRHOST) == 0) {
+ PHP_IMAP_BAD_DEST;
+ } else {
offset += sprintf(bufferCc + offset, "[EMAIL
PROTECTED],", addr->mailbox, addr->host);
}
addr = addr->next;
@@ -3245,9 +3249,9 @@
addr = NULL;
rfc822_parse_adrlist(&addr, tempMailTo, NULL);
while (addr) {
- if (strcmp(addr->host, ERRHOST) == 0)
- return (BAD_MSG_DESTINATION);
- else {
+ if (strcmp(addr->host, ERRHOST) == 0) {
+ PHP_IMAP_BAD_DEST;
+ } else {
offset += sprintf(bufferBcc + offset, "[EMAIL
PROTECTED],", addr->mailbox, addr->host);
}
addr = addr->next;
@@ -3269,20 +3273,10 @@
} else {
php_error(E_WARNING, "%s(): %s",
get_active_function_name(TSRMLS_C), GetSMErrorText(tsm_err));
}
+ PHP_IMAP_CLEAN;
return 0;
}
- if (bufferTo) {
- efree(bufferTo);
- }
- if (bufferCc) {
- efree(bufferCc);
- }
- if (bufferBcc) {
- efree(bufferBcc);
- }
- if (bufferHeader) {
- efree(bufferHeader);
- }
+ PHP_IMAP_CLEAN;
#else
if (!INI_STR("sendmail_path")) {
return 0;
--
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php