summaryrefslogtreecommitdiff
path: root/ext/imap/php_imap.c
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'PHP-8.0'George Peter Banyard2021-02-271-2/+10
|\ | | | | | | | | * PHP-8.0: Fix Bug #80800 imap_open() fails when the flags parameter includes CL_EXPUNGE
| * 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
* | Generate class entries from stubs for another batch of extensionsMáté Kocsis2021-02-081-5/+1
| | | | | | | | Closes GH-6669
* | Replace zend_bool uses with boolNikita Popov2021-01-151-1/+1
| | | | | | | | | | | | | | We're starting to see a mix between uses of zend_bool and bool. Replace all usages with the standard bool type everywhere. Of course, zend_bool is retained as an alias.
* | Make convert_to_*_ex simple aliases of convert_to_*Nikita Popov2021-01-141-30/+30
| | | | | | | | | | | | | | | | | | | | | | | | | | Historically, the _ex variants separated the zval first, if a conversion was necessary. This distinction no longer makes sense since PHP 7. The only difference that was still left is that _ex checked whether the type is the same first, but the usage of these macros did not actually distinguish on whether such an inlined check is valuable or not in a given context. Also drop the unused convert_to_explicit_type macros.
* | IMAP: Disallow direct `new IMAPConnection()` constructAyesh Karunaratne2020-12-231-0/+6
| | | | | | | | | | Disallows constructing an `IMAPConnection` class directly with `new IMAPConnection` construct, by throwing an `Error` exception if attempted. `imap_open` is still the only way to create `IMAPConnection` objects.
* | Convert IMAP resource to objectGeorge Peter Banyard2020-12-221-412/+367
| | | | | | | | Closes GH-6418
* | Merge branch 'PHP-8.0'George Peter Banyard2020-12-031-84/+45
|\ \ | |/ | | | | | | | | * PHP-8.0: Standardize behaviour for int message number between functions Add tests for passing a UID instead of a message number
| * 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
| |
* | Flesh out HashTable insertion APIsSara Golemon2020-12-011-28/+28
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fills out the array/object-property insert helpers for zend_array, zend_object, and zend_reference. This adds the following matrix of 18 APIs add_next_index_T() add_index_T() add_assoc_T() add_assoc_T_ex() add_property_T() add_property_T_ex() Where T in array, object, reference Converted internal callsites currently doing an explicit object wrap.
* | Merge branch 'PHP-8.0'George Peter Banyard2020-11-301-4/+8
|\ \ | |/ | | | | | | | | * PHP-8.0: Fix Bug #80438: imap_msgno() incorrectly warns and return false on valid UIDs in PHP 8.0.0 Rename XmlParser to XMLParser for consistency with XMLWriter/XMLReader
| * 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.
* | Merge branch 'PHP-8.0'George Peter Banyard2020-10-231-25/+25
|\ \ | |/ | | | | | | * PHP-8.0: Throw Value/TypeError for invalid $bodies in imap_mail_compose()
| * 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
* | Merge branch 'PHP-8.0'George Peter Banyard2020-10-221-1/+1
|\ \ | |/ | | | | | | * PHP-8.0: Fix bug 76618
| * Fix bug 76618George Peter Banyard2020-10-221-1/+1
| | | | | | | | Apply patch which was attached to the bug in July 2018
* | Merge branch 'PHP-8.0'George Peter Banyard2020-10-221-4/+14
|\ \ | |/ | | | | | | * PHP-8.0: Fix segfaults after conversion from zval to zend_string params
| * Fix segfaults after conversion from zval to zend_string paramsGeorge Peter Banyard2020-10-221-4/+14
| |
* | Merge branch 'PHP-8.0' into masterChristoph M. Becker2020-10-201-9/+13
|\ \ | |/ | | | | | | * PHP-8.0: Fix #80242: imap_mail_compose() segfaults for multipart with rfc822
| * 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-8.0' into masterChristoph M. Becker2020-10-201-1/+1
|\ \ \ \ | |/ / / | | | | | | | | | | | | * PHP-8.0: Add char* cast to avoid compiler warnings
| * | | 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-8.0' into masterChristoph M. Becker2020-10-201-9/+13
|\ \ \ \ | |/ / / | | | | | | | | | | | | * PHP-8.0: Properly fix #80220
| * | | 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-8.0' into masterChristoph M. Becker2020-10-151-2/+2
|\ \ \ \ | |/ / / | | | | | | | | | | | | * PHP-8.0: Fix broken fix for #80239
| * | | 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-8.0' into masterChristoph M. Becker2020-10-151-0/+1
|\ \ \ \ | |/ / / | | | | | | | | | | | | * PHP-8.0: Fix #80239: imap_rfc822_write_address() leaks memory
| * | | 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-8.0' into masterChristoph M. Becker2020-10-131-0/+3
|\ \ \ \ | |/ / / | | | | | | | | | | | | * PHP-8.0: Fix #64076: imap_sort() does not return FALSE on failure
| * | | 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-8.0' into masterChristoph M. Becker2020-10-131-0/+6
|\ \ \ \ | |/ / / | | | | | | | | | | | | * PHP-8.0: Ignore memory leaks reported for some libc-client functions
| * | | 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-8.0' into masterChristoph M. Becker2020-10-121-0/+1
|\ \ \ \ | |/ / / | | | | | | | | | | | | * PHP-8.0: Fix #80226: imap_sort() leaks sortpgm memory
| * | | 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.