diff options
author | Christoph M. Becker <cmbecker69@gmx.de> | 2020-10-12 18:06:53 +0200 |
---|---|---|
committer | Christoph M. Becker <cmbecker69@gmx.de> | 2020-10-12 23:16:31 +0200 |
commit | 8488c34fc607353be97e0ebadca3fec9f6373b6d (patch) | |
tree | abff9ab7c670d1aa1106a583d6fda3410cb051f6 | |
parent | 73e43b6e19720112f0d10bd988d840e7537055a4 (diff) | |
download | php-git-8488c34fc607353be97e0ebadca3fec9f6373b6d.tar.gz |
Fix #80226: imap_sort() leaks sortpgm memory
We need to free what we have allocated.
Closes GH-6327.
-rw-r--r-- | NEWS | 1 | ||||
-rw-r--r-- | ext/imap/php_imap.c | 1 | ||||
-rw-r--r-- | ext/imap/tests/bug80226.phpt | 13 |
3 files changed, 15 insertions, 0 deletions
@@ -17,6 +17,7 @@ PHP NEWS (cmb) . Fixed bug #80216 (imap_mail_compose() does not validate types/encodings). (cmb) + . Fixed bug #80226 (imap_sort() leaks sortpgm memory). (cmb) - MySQLnd: . Fixed bug #80115 (mysqlnd.debug doesn't recognize absolute paths with diff --git a/ext/imap/php_imap.c b/ext/imap/php_imap.c index 5f05a0c359..a88c329b01 100644 --- a/ext/imap/php_imap.c +++ b/ext/imap/php_imap.c @@ -3189,6 +3189,7 @@ PHP_FUNCTION(imap_sort) slst = mail_sort(imap_le_struct->imap_stream, (argc == 6 ? ZSTR_VAL(charset) : NIL), spg, mypgm, (argc >= 4 ? flags : NIL)); + 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-- |