Commit graph

147 commits

Author SHA1 Message Date
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
George Peter Banyard
3b67f183b1 Update README for how to setup IMAP tests
This details which packages needs to be installed on Ubuntun 18.04,
which configure flags are necessary and what the setup.sh shell script does.
2020-09-20 22:20:34 +01:00
George Peter Banyard
30bb15b24a Fix IMAP tests
Drop various ZPP checks and make them PASS
Add CONFLICT file as the tests all hit the same mailbox
2020-09-18 23:02:01 +02:00
George Peter Banyard
ef9359d30f Set-up IMAP in Azure
Closes GH-6162
2020-09-18 23:02:01 +02:00
Nikita Popov
c5401854fc Run tidy
This should fix most of the remaining issues with tabs and spaces
being mixed in tests.
2020-09-18 14:28:32 +02:00
Máté Kocsis
9975986b7e
Improve error messages mentioning parameters instead of arguments
Closes GH-5999
2020-09-09 10:47:43 +02:00
Máté Kocsis
7aacc705d0
Add many missing closing PHP tags to tests
Closes GH-5958
2020-08-09 22:03:36 +02:00