summaryrefslogtreecommitdiff
path: root/ext
diff options
context:
space:
mode:
Diffstat (limited to 'ext')
-rw-r--r--ext/imap/php_imap.c1
-rw-r--r--ext/imap/tests/bug80226.phpt13
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--