diff options
Diffstat (limited to 'ext')
-rw-r--r-- | ext/imap/php_imap.c | 1 | ||||
-rw-r--r-- | ext/imap/tests/bug80226.phpt | 13 |
2 files changed, 14 insertions, 0 deletions
diff --git a/ext/imap/php_imap.c b/ext/imap/php_imap.c index fdaae14ee0..dbd53dff5c 100644 --- a/ext/imap/php_imap.c +++ b/ext/imap/php_imap.c @@ -2742,6 +2742,7 @@ PHP_FUNCTION(imap_sort) slst = mail_sort(imap_le_struct->imap_stream, (charset ? ZSTR_VAL(charset) : NIL), spg, mypgm, flags); + mail_free_sortpgm(&mypgm); if (spg && !(flags & SE_FREE)) { mail_free_searchpgm(&spg); } diff --git a/ext/imap/tests/bug80226.phpt b/ext/imap/tests/bug80226.phpt new file mode 100644 index 0000000000..95ec235178 --- /dev/null +++ b/ext/imap/tests/bug80226.phpt @@ -0,0 +1,13 @@ +--TEST-- +Bug #80226 (imap_sort() leaks sortpgm memory) +--SKIPIF-- +<?php +require_once(__DIR__.'/skipif.inc'); +?> +--FILE-- +<?php +require_once(__DIR__.'/imap_include.inc'); +$stream = imap_open($default_mailbox, $username, $password); +imap_sort($stream, SORTFROM, 0); +?> +--EXPECT-- |