From 287499b99a0afda5a78c82076c964bfff0691746 Mon Sep 17 00:00:00 2001 From: Pierre Joye Date: Thu, 23 Apr 2009 22:24:54 +0000 Subject: [PATCH] - #47940, leaks in imap_body() --- ext/imap/php_imap.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/ext/imap/php_imap.c b/ext/imap/php_imap.c index 1adb105ced..7cc48e75d9 100644 --- a/ext/imap/php_imap.c +++ b/ext/imap/php_imap.c @@ -1560,6 +1560,8 @@ PHP_FUNCTION(imap_body) long msgno, flags = 0; pils *imap_le_struct; int msgindex, argc = ZEND_NUM_ARGS(); + char *body; + unsigned long body_len; if (zend_parse_parameters(argc TSRMLS_CC, "rl|l", &streamind, &msgno, &flags) == FAILURE) { return; @@ -1586,7 +1588,13 @@ PHP_FUNCTION(imap_body) RETURN_FALSE; } - RETVAL_STRING(mail_fetchtext_full(imap_le_struct->imap_stream, msgno, NIL, (argc == 3 ? flags : NIL)), 1); + body = mail_fetchtext_full (imap_le_struct->imap_stream, msgno, &body_len, (argc == 3 ? flags : NIL)); + if (body_len == 0) { + RETVAL_EMPTY_STRING(); + } else { + RETVAL_STRINGL(body, body_len, 1); + } + free(body); } /* }}} */ -- 2.50.1