Ayesh Karunaratne
af68d4aae6
IMAP: Declare IMAPConnection
class as final
(stub+test)
...
Updates the `IMAPConnection` class stub to make sure it has the `final` flag, and adds a test to verify it.
2020-12-23 21:21:32 +01:00
Ayesh Karunaratne
7f1659afcb
IMAP: Disallow direct new IMAPConnection()
construct
...
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.
2020-12-23 21:21:32 +01:00
George Peter Banyard
c6a8f201b1
EXPECTF imap_errors() test's authentication error
2020-12-22 23:14:11 +01:00
George Peter Banyard
7606994356
Make imap_errors() test no hang
...
Instead of attempting to connect with an invalid password, connect as an anonymous user.
As this is disabled in our Dovecot configuration, this generates an error, and fails fast.
2020-12-22 19:55:30 +01:00
George Peter Banyard
a80a029896
Optimize Dovecot configuration for IMAP tests
...
Closes GH-6531
2020-12-22 19:55:30 +01:00
George Peter Banyard
383779e502
Convert IMAP resource to object
...
Closes GH-6418
2020-12-22 03:06:35 +01:00
George Peter Banyard
426fe2f20c
Standardize behaviour for int message number between functions
2020-12-03 17:43:08 +00:00
George Peter Banyard
e45cc31c41
Add tests for passing a UID instead of a message number
2020-12-03 16:38:22 +00:00
George Peter Banyard
5aaffc8095
Backport IMAP test modernization to PHP-8.0 branch
...
Closes GH-6476
2020-12-01 16:38:08 +00:00
Dmitry Stogov
4959c60524
Fixed incorrect "skipif.inc" include
2020-12-01 11:34:09 +03:00
George Peter Banyard
0076b47326
Fix Bug #80438 : imap_msgno() incorrectly warns and return false on valid 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.
2020-11-30 14:08:31 +00:00
George Peter Banyard
158d308197
Throw Value/TypeError for invalid $bodies in imap_mail_compose()
...
Small drive by refactoring to use HashTables
Closes GH-6371
2020-10-23 20:47:35 +01:00
George Peter Banyard
8b265fb602
Fix segfaults after conversion from zval to zend_string params
2020-10-22 15:50:01 +01:00
Christoph M. Becker
edd8bd64ba
Merge branch 'PHP-7.4' into PHP-8.0
...
* PHP-7.4:
Fix #80242 : imap_mail_compose() segfaults for multipart with rfc822
2020-10-20 19:02:15 +02:00
Christoph M. Becker
4ef7be20ab
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fix #80242 : imap_mail_compose() segfaults for multipart with rfc822
2020-10-20 19:00:16 +02:00
Christoph M. Becker
315b95b065
Fix #80242 : imap_mail_compose() segfaults for multipart with rfc822
...
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.
2020-10-20 18:58:45 +02:00
Christoph M. Becker
486c49dee8
Merge branch 'PHP-7.4' into PHP-8.0
...
* PHP-7.4:
Properly fix #80220
2020-10-20 13:36:41 +02:00
Christoph M. Becker
9cfd650697
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Properly fix #80220
2020-10-20 13:35:06 +02:00
Christoph M. Becker
7f3bdda29b
Properly fix #80220
...
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.
2020-10-20 13:32:53 +02:00
Christoph M. Becker
b7c1834c6a
Merge branch 'PHP-7.4' into PHP-8.0
...
* PHP-7.4:
Fix #80239 : imap_rfc822_write_address() leaks memory
2020-10-15 12:57:35 +02:00
Christoph M. Becker
7899ac4c14
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fix #80239 : imap_rfc822_write_address() leaks memory
2020-10-15 12:56:02 +02:00
Christoph M. Becker
5941b30bb8
Fix #80239 : imap_rfc822_write_address() leaks memory
...
We have to free the address when we're finished with it.
2020-10-15 12:54:53 +02:00
Christoph M. Becker
5aec24c477
Merge branch 'PHP-7.4' into PHP-8.0
...
* PHP-7.4:
Fix #64076 : imap_sort() does not return FALSE on failure
2020-10-13 19:41:27 +02:00
Christoph M. Becker
d9058b61fb
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fix #64076 : imap_sort() does not return FALSE on failure
2020-10-13 19:38:31 +02:00
Christoph M. Becker
db8bf0a9e0
Fix #64076 : imap_sort() does not return FALSE on failure
...
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.
2020-10-13 19:37:05 +02:00
Christoph M. Becker
818eb8f611
Merge branch 'PHP-7.4' into PHP-8.0
...
* PHP-7.4:
Fix #80226 : imap_sort() leaks sortpgm memory
2020-10-12 23:21:56 +02:00
Christoph M. Becker
12fc8f66e7
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fix #80226 : imap_sort() leaks sortpgm memory
2020-10-12 23:17:57 +02:00
Christoph M. Becker
8488c34fc6
Fix #80226 : imap_sort() leaks sortpgm memory
...
We need to free what we have allocated.
Closes GH-6327.
2020-10-12 23:16:31 +02:00
Christoph M. Becker
11c752a5f5
Merge branch 'PHP-7.4' into PHP-8.0
...
* PHP-7.4:
Fix #80216 : imap_mail_compose() does not validate types/encodings
2020-10-12 16:30:48 +02:00
Christoph M. Becker
216d6a024a
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fix #80216 : imap_mail_compose() does not validate types/encodings
2020-10-12 16:28:52 +02:00
Christoph M. Becker
73e43b6e19
Fix #80216 : imap_mail_compose() does not validate types/encodings
...
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.
2020-10-12 16:27:49 +02:00
Christoph M. Becker
0443c824a3
Merge branch 'PHP-7.4' into PHP-8.0
...
* PHP-7.4:
Fix #80223 : imap_mail_compose() leaks envelope on malformed bodies
2020-10-12 15:10:38 +02:00
Christoph M. Becker
4a469c7e98
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fix #80223 : imap_mail_compose() leaks envelope on malformed bodies
2020-10-12 15:09:30 +02:00
Christoph M. Becker
c1962e900a
Fix #80223 : imap_mail_compose() leaks envelope on malformed bodies
...
We have to clean up even on failure.
Closes GH-6322.
2020-10-12 15:08:30 +02:00
Christoph M. Becker
6494e57804
Merge branch 'PHP-7.4' into PHP-8.0
...
* PHP-7.4:
Fix #80215 : imap_mail_compose() may modify by-val parameters
2020-10-10 23:28:19 +02:00
Christoph M. Becker
7940fb42ce
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fix #80215 : imap_mail_compose() may modify by-val parameters
2020-10-10 23:26:12 +02:00
Christoph M. Becker
62a2387a8d
Fix #80215 : imap_mail_compose() may modify by-val parameters
...
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.
2020-10-10 23:25:06 +02:00
Christoph M. Becker
7d085c87ac
Merge branch 'PHP-7.4' into PHP-8.0
...
* PHP-7.4:
Fix #80213 : imap_mail_compose() segfaults on certain $bodies
2020-10-10 19:19:47 +02:00
Christoph M. Becker
b2b9e2e87e
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fix #80213 : imap_mail_compose() segfaults on certain $bodies
2020-10-10 19:18:14 +02:00
Christoph M. Becker
8bee0fbd37
Fix #80213 : imap_mail_compose() segfaults on certain $bodies
...
We have to cater to non-associative arrays where the key may be `NULL`;
we just skip these elements.
Closes GH-6315.
2020-10-10 19:17:13 +02:00
Nikita Popov
e0f2ac9ff6
Update ext/imap parameter names
...
Closes GH-6299.
2020-10-08 18:02:09 +02:00
Christoph M. Becker
d3b41c4640
Fix imap test expectation which is still too strict for Windows
2020-10-08 12:33:38 +02:00
Christoph M. Becker
48736dddab
Merge branch 'PHP-7.4' into master
...
* PHP-7.4:
Fix too strict imap test expectations
2020-10-08 12:11:28 +02:00
Christoph M. Becker
2e7247c558
Merge branch 'PHP-7.3' into PHP-7.4
...
* PHP-7.3:
Fix too strict imap test expectations
2020-10-08 12:08:35 +02:00
Christoph M. Becker
1895bf7b94
Fix too strict imap test expectations
2020-10-08 12:06:54 +02:00
Nikita Popov
0a573f9e1c
Skip one more imap test under asan
...
Wondering if the error just moves to a different test each time
we skip one?
2020-09-28 09:54:44 +02:00
Nikita Popov
ae86edefe7
Skip imap_lsub_basic.phpt under asan
...
LeakSanitizer fails on Azure with:
> Tracer caught signal 11: addr=0x0 pc=0x7f86cde7c8b0 sp=0x7f86c46bcce0
2020-09-24 17:03:53 +02:00
George Peter Banyard
25569679aa
Promote warnings to Error in IMAP extension
...
Drop some dependencies on argc at the same time
Closes GH-6164
2020-09-23 13:54:54 +01:00
George Peter Banyard
35013ac823
Skip IMAP test which chokes on ASAN build
2020-09-22 14:43:31 +01:00
George Peter Banyard
9746490ad4
Drop some connection retries in IMAP test
...
They are unnecessary and just take time for no good reason
2020-09-21 14:49:53 +01:00