summaryrefslogtreecommitdiff
path: root/ext/imap/php_imap.c
Commit message (Collapse)AuthorAgeFilesLines
* Fix Bug #80800 imap_open() fails when the flags parameter includes CL_EXPUNGEGeorge Peter Banyard2021-02-271-2/+10
| | | | | | | | This also affected imap_reopen(). Add a supplementary test that the CL_EXPUNGE flag does have the intended effect. Closes GH-6732
* Standardize behaviour for int message number between functionsGeorge Peter Banyard2020-12-031-85/+45
|
* Add tests for passing a UID instead of a message numberGeorge Peter Banyard2020-12-031-1/+2
|
* Fix Bug #80438: imap_msgno() incorrectly warns and return false on valid ↵George Peter Banyard2020-11-301-4/+8
| | | | | | | | UIDs in PHP 8.0.0 Checking for a valid Unique ID (UID) cannot use the convenience macro as they might be larger than the message number which has for maximum value the total number of current messages available in the mailbox.
* Throw Value/TypeError for invalid $bodies in imap_mail_compose()George Peter Banyard2020-10-231-25/+25
| | | | | | Small drive by refactoring to use HashTables Closes GH-6371
* Fix bug 76618George Peter Banyard2020-10-221-1/+1
| | | | Apply patch which was attached to the bug in July 2018
* Fix segfaults after conversion from zval to zend_string paramsGeorge Peter Banyard2020-10-221-4/+14
|
* Merge branch 'PHP-7.4' into PHP-8.0Christoph M. Becker2020-10-201-9/+13
|\ | | | | | | | | * PHP-7.4: Fix #80242: imap_mail_compose() segfaults for multipart with rfc822
| * Merge branch 'PHP-7.3' into PHP-7.4Christoph M. Becker2020-10-201-9/+13
| |\ | | | | | | | | | | | | * PHP-7.3: Fix #80242: imap_mail_compose() segfaults for multipart with rfc822
| | * Fix #80242: imap_mail_compose() segfaults for multipart with rfc822Christoph M. Becker2020-10-201-9/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | 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). Closes GH-6345.
* | | Merge branch 'PHP-7.4' into PHP-8.0Christoph M. Becker2020-10-201-1/+1
|\ \ \ | |/ / | | | | | | | | | * PHP-7.4: Add char* cast to avoid compiler warnings
| * | Merge branch 'PHP-7.3' into PHP-7.4Christoph M. Becker2020-10-201-1/+1
| |\ \ | | |/ | | | | | | | | | * PHP-7.3: Add char* cast to avoid compiler warnings
| | * Add char* cast to avoid compiler warningsChristoph M. Becker2020-10-201-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | In libc-client 2007f `data` is declared as `unsigned char *`; there may be variants which declare it as `void *`, but in any case picky compilers may warn about a pointer type mismatch in the conditional (and error with `-W-error`), so we're adding a `char *` cast for good measure.
* | | Merge branch 'PHP-7.4' into PHP-8.0Christoph M. Becker2020-10-201-9/+13
|\ \ \ | |/ / | | | | | | | | | * PHP-7.4: Properly fix #80220
| * | Merge branch 'PHP-7.3' into PHP-7.4Christoph M. Becker2020-10-201-9/+13
| |\ \ | | |/ | | | | | | | | | * PHP-7.3: Properly fix #80220
| | * Properly fix #80220Christoph M. Becker2020-10-201-9/+13
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | | Merge branch 'PHP-7.4' into PHP-8.0Christoph M. Becker2020-10-151-2/+2
|\ \ \ | |/ / | | | | | | | | | * PHP-7.4: Fix broken fix for #80239
| * | Merge branch 'PHP-7.3' into PHP-7.4Christoph M. Becker2020-10-151-2/+2
| |\ \ | | |/ | | | | | | | | | * PHP-7.3: Fix broken fix for #80239
| | * Fix broken fix for #80239Christoph M. Becker2020-10-151-2/+2
| | | | | | | | | | | | No idea why that `git am` failed that badly.
* | | Merge branch 'PHP-7.4' into PHP-8.0Christoph M. Becker2020-10-151-0/+1
|\ \ \ | |/ / | | | | | | | | | * PHP-7.4: Fix #80239: imap_rfc822_write_address() leaks memory
| * | Merge branch 'PHP-7.3' into PHP-7.4Christoph M. Becker2020-10-151-0/+1
| |\ \ | | |/ | | | | | | | | | * PHP-7.3: Fix #80239: imap_rfc822_write_address() leaks memory
| | * Fix #80239: imap_rfc822_write_address() leaks memoryChristoph M. Becker2020-10-151-0/+1
| | | | | | | | | | | | We have to free the address when we're finished with it.
* | | Merge branch 'PHP-7.4' into PHP-8.0Christoph M. Becker2020-10-131-0/+3
|\ \ \ | |/ / | | | | | | | | | * PHP-7.4: Fix #64076: imap_sort() does not return FALSE on failure
| * | Merge branch 'PHP-7.3' into PHP-7.4Christoph M. Becker2020-10-131-0/+3
| |\ \ | | |/ | | | | | | | | | * PHP-7.3: Fix #64076: imap_sort() does not return FALSE on failure
| | * Fix #64076: imap_sort() does not return FALSE on failureChristoph M. Becker2020-10-131-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | If unsupported `$search_criteria` are passed to `imap_sort()`, the function returns an empty array, but there is also an error on the libc-client error stack ("Unknown search criterion: UNSUPPORTED (errflg=2)"). If, on the other hand, unsupported `$criteria` or unsupported `$flags` are passed, the function returns `false`. We solve this inconsistency by returning `false` for unsupported `$search_criteria` as well. Closes GH-6332.
* | | Merge branch 'PHP-7.4' into PHP-8.0Christoph M. Becker2020-10-131-0/+6
|\ \ \ | |/ / | | | | | | | | | * PHP-7.4: Ignore memory leaks reported for some libc-client functions
| * | Ignore memory leaks reported for some libc-client functionsChristoph M. Becker2020-10-131-0/+6
| | | | | | | | | | | | | | | | | | | | | | | | At least on Windows, some static variables are lazily initialized during `mail_open()` and `mail_lsub()`, which are reported as memory leaks. We suppress these false positives. Closes GH-6326.
* | | Merge branch 'PHP-7.4' into PHP-8.0Christoph M. Becker2020-10-121-0/+1
|\ \ \ | |/ / | | | | | | | | | * PHP-7.4: Fix #80226: imap_sort() leaks sortpgm memory
| * | Merge branch 'PHP-7.3' into PHP-7.4Christoph M. Becker2020-10-121-0/+1
| |\ \ | | |/ | | | | | | | | | * PHP-7.3: Fix #80226: imap_sort() leaks sortpgm memory
| | * Fix #80226: imap_sort() leaks sortpgm memoryChristoph M. Becker2020-10-121-0/+1
| | | | | | | | | | | | | | | | | | We need to free what we have allocated. Closes GH-6327.
* | | Change parameters types from int to boolChristoph M. Becker2020-10-121-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | These are typical boolean parameters, so we shouldn't advertize them as integers. For the `$reverse` parameter that even fixes expectations, because the `reverse` member is a bitfield of 1 bit, so assigning any even integer would not set it. Closes GH-6328.
* | | Merge branch 'PHP-7.4' into PHP-8.0Christoph M. Becker2020-10-121-9/+18
|\ \ \ | |/ / | | | | | | | | | * PHP-7.4: Fix #80216: imap_mail_compose() does not validate types/encodings
| * | Merge branch 'PHP-7.3' into PHP-7.4Christoph M. Becker2020-10-121-9/+18
| |\ \ | | |/ | | | | | | | | | * PHP-7.3: Fix #80216: imap_mail_compose() does not validate types/encodings
| | * Fix #80216: imap_mail_compose() does not validate types/encodingsChristoph M. Becker2020-10-121-9/+18
| | | | | | | | | | | | | | | | | | | | | We need to check whether the given `type`s and `encoding`s are within bounds to avoid segfaults and out-of-bound reads. Closes GH-6323.
* | | Merge branch 'PHP-7.4' into PHP-8.0Christoph M. Becker2020-10-121-2/+4
|\ \ \ | |/ / | | | | | | | | | * PHP-7.4: Fix #80223: imap_mail_compose() leaks envelope on malformed bodies
| * | Merge branch 'PHP-7.3' into PHP-7.4Christoph M. Becker2020-10-121-2/+4
| |\ \ | | |/ | | | | | | | | | * PHP-7.3: Fix #80223: imap_mail_compose() leaks envelope on malformed bodies
| | * Fix #80223: imap_mail_compose() leaks envelope on malformed bodiesChristoph M. Becker2020-10-121-2/+4
| | | | | | | | | | | | | | | | | | We have to clean up even on failure. Closes GH-6322.
* | | Merge branch 'PHP-7.4' into PHP-8.0Christoph M. Becker2020-10-121-1/+1
|\ \ \ | |/ / | | | | | | | | | * PHP-7.4: Fix #80220: imap_mail_compose() may leak memory
| * | Merge branch 'PHP-7.3' into PHP-7.4Christoph M. Becker2020-10-121-1/+1
| |\ \ | | |/ | | | | | | | | | * PHP-7.3: Fix #80220: imap_mail_compose() may leak memory
| | * Fix #80220: imap_mail_compose() may leak memoryChristoph M. Becker2020-10-121-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | Unless `topbod` is of `TYPEMULTIPART`, `mail_free_body()` does not free the `nested.part`; while we could do this ourselves, instead we just ignore additional bodies in this case, i.e. we don't attach them in the first place. Closes GH-6321.
* | | Merge branch 'PHP-7.4' into PHP-8.0Christoph M. Becker2020-10-101-1/+8
|\ \ \ | |/ / | | | | | | | | | * PHP-7.4: Fix #80215: imap_mail_compose() may modify by-val parameters
| * | Merge branch 'PHP-7.3' into PHP-7.4Christoph M. Becker2020-10-101-1/+8
| |\ \ | | |/ | | | | | | | | | * PHP-7.3: Fix #80215: imap_mail_compose() may modify by-val parameters
| | * Fix #80215: imap_mail_compose() may modify by-val parametersChristoph M. Becker2020-10-101-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | We separate the input arrays and all sub-arrays to avoid modification of the passed parameters. This should be rewritten to use `zend_string`s for the "master" branch. Closes GH-6316.
* | | Merge branch 'PHP-7.4' into PHP-8.0Christoph M. Becker2020-10-101-0/+4
|\ \ \ | |/ / | | | | | | | | | * PHP-7.4: Fix #80213: imap_mail_compose() segfaults on certain $bodies
| * | Merge branch 'PHP-7.3' into PHP-7.4Christoph M. Becker2020-10-101-0/+4
| |\ \ | | |/ | | | | | | | | | * PHP-7.3: Fix #80213: imap_mail_compose() segfaults on certain $bodies
| | * Fix #80213: imap_mail_compose() segfaults on certain $bodiesChristoph M. Becker2020-10-101-0/+4
| | | | | | | | | | | | | | | | | | | | | We have to cater to non-associative arrays where the key may be `NULL`; we just skip these elements. Closes GH-6315.
* | | Fix potential mail related segfault on WindowsChristoph M. Becker2020-10-081-1/+1
| | | | | | | | | | | | | | | `rpath` may be `NULL` here, in which case we must not access its members.
* | | Promote warnings to Error in IMAP extensionGeorge Peter Banyard2020-09-231-172/+250
| | | | | | | | | | | | | | | | | | Drop some dependencies on argc at the same time Closes GH-6164
* | | Add proper default values for optional arguments in IMAPGeorge Peter Banyard2020-09-221-16/+12
| | | | | | | | | | | | Closes GH-6179
* | | Refactor imap_mail()'s internal implementation to use zend_stringsGeorge Peter Banyard2020-09-221-52/+55
| | |