mirror of
https://github.com/php/php-src.git
synced 2026-04-18 05:21:02 +02:00
The original fix for that bug[1] broke the formerly working composition of message/rfc822 messages, which results in a segfault when freeing the message body now. While `imap_mail_compose()` does not really support composition of meaningful message/rfc822 messages (although libc-client appears to support that), some code may still use this to compose partial messages, and using string manipulation to create the final message. The point is that libc-client expects `TYPEMESSAGE` with an explicit subtype of `RFC822` to have a `nested.msg` (otherwise there will be a segfault during free), but not to have any `contents.text.data` (this will leak otherwise). [1] <http://git.php.net/?p=php-src.git;a=commit;h=0d022ddf03c5fabaaa22e486d1e4a367ed9170a7> Closes GH-6343.
35 lines
604 B
PHP
35 lines
604 B
PHP
--TEST--
|
|
Bug #80220 (imap_mail_compose() may leak memory) - message/rfc822 regression
|
|
--SKIPIF--
|
|
<?php
|
|
if (!extension_loaded('imap')) die('skip imap extension not available');
|
|
?>
|
|
--FILE--
|
|
<?php
|
|
$bodies = [[
|
|
'type' => TYPEMESSAGE,
|
|
'subtype' => 'RFC822',
|
|
], [
|
|
'contents.data' => 'asd',
|
|
]];
|
|
var_dump(imap_mail_compose([], $bodies));
|
|
|
|
$bodies = [[
|
|
'type' => TYPEMESSAGE,
|
|
], [
|
|
'contents.data' => 'asd',
|
|
]];
|
|
var_dump(imap_mail_compose([], $bodies));
|
|
?>
|
|
--EXPECT--
|
|
string(53) "MIME-Version: 1.0
|
|
Content-Type: MESSAGE/RFC822
|
|
|
|
|
|
"
|
|
string(53) "MIME-Version: 1.0
|
|
Content-Type: MESSAGE/RFC822
|
|
|
|
|
|
"
|