1
0
mirror of https://github.com/php/php-src.git synced 2026-04-17 13:01:02 +02:00
Commit Graph

139 Commits

Author SHA1 Message Date
Stanislav Malyshev
7cf7148a8f Fix bug #78069 - Out-of-bounds read in iconv.c:_php_iconv_mime_decode() due to integer overflow 2019-05-27 16:32:42 -07:00
Christoph M. Becker
a56cdd0a82 Fix #77147: Fix for 60494 ignores ICONV_MIME_DECODE_CONTINUE_ON_ERROR
If the `ICONV_MIME_DECODE_CONTINUE_ON_ERROR` flag is set, parsing
should not fail, if there are illegal characters in the headers;
instead we silently ignore these like before.
2018-11-14 14:55:38 +01:00
Peter Kokot
113213f027 Sync leading and final newlines in *.phpt sections
This patch adds missing newlines, trims multiple redundant final
newlines into a single one, and trims redundant leading newlines in all
*.phpt sections.

According to POSIX, a line is a sequence of zero or more non-' <newline>'
characters plus a terminating '<newline>' character. [1] Files should
normally have at least one final newline character.

C89 [2] and later standards [3] mention a final newline:
"A source file that is not empty shall end in a new-line character,
which shall not be immediately preceded by a backslash character."

Although it is not mandatory for all files to have a final newline
fixed, a more consistent and homogeneous approach brings less of commit
differences issues and a better development experience in certain text
editors and IDEs.

[1] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_206
[2] https://port70.net/~nsz/c/c89/c89-draft.html#2.1.1.2
[3] https://port70.net/~nsz/c/c99/n1256.html#5.1.1.2
2018-10-15 04:29:24 +02:00
Peter Kokot
7af945e271 Trim trailing whitespace in *.phpt 2018-10-14 19:43:12 +02:00
Peter Kokot
03f3b8479b Sync leading and final newlines in source code files
This patch adds missing newlines, trims multiple redundant final
newlines into a single one, and trims redundant leading newlines.

According to POSIX, a line is a sequence of zero or more non-' <newline>'
characters plus a terminating '<newline>' character. [1] Files should
normally have at least one final newline character.

C89 [2] and later standards [3] mention a final newline:
"A source file that is not empty shall end in a new-line character,
which shall not be immediately preceded by a backslash character."

Although it is not mandatory for all files to have a final newline
fixed, a more consistent and homogeneous approach brings less of commit
differences issues and a better development experience in certain text
editors and IDEs.

[1] http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_206
[2] https://port70.net/~nsz/c/c89/c89-draft.html#2.1.1.2
[3] https://port70.net/~nsz/c/c99/n1256.html#5.1.1.2
2018-10-14 12:51:01 +02:00
Christoph M. Becker
9cbe1283f7 Fix #66828: iconv_mime_encode Q-encoding longer than it should be
Before the fix for bug 48289 has been applied, the algorithm to
construct a Q-encoded-word has been optimistic, i.e. try to encode as
many bytes that *may* fit in the remaining space, calculate the actual
length of the Q-encoded word, and if it's too long, try again with a
reduced size.  However, the fix for the mentioned bug replaced this by
a pessimistic algorithm, which always terminates[1] the for loop[2]
during the first iteration (which renders the following 3 lines as dead
code), and as such easily produces unnecessarily short encoded-words.
Instead the proper fix for the bug would have been to make sure that
`out_size` is always decremented, if the space isn't sufficient for the
encoded-word.

[1] <https://github.com/php/php-src/blob/php-7.3.0beta3/ext/iconv/iconv.c#L1421>
[2] <https://github.com/php/php-src/blob/php-7.3.0beta3/ext/iconv/iconv.c#L1360>
2018-09-22 15:20:20 +02:00
Christoph M. Becker
efb86aef12 Fix #68180: iconv_mime_decode can return extra characters in a header
Basically, the algorithm to append a converted string to an existing
`smart_str` works by increasing the `smart_str` buffer, to let `iconv`
convert characters until there is no more space, to set the new length
of the `smart_str` and to repeat until there is no more input.

Formerly, the new length calculation has been wrong, though, since we
would have to take the old `out_len` into account (`buf_growth -
old_out_len - out_len`).  However, since there is no need to take the
old `out_len` into account when increasing the `smart_str` buffer, we
can simplify the fix, avoiding an additional variable.
2018-08-26 13:18:35 +02:00
Christoph M. Becker
e29c946c29 Fix #60494: iconv_mime_decode does ignore special characters
We must not ignore erroneous characters in mime headers, but rather let
iconv_mime_decode() fail in this case, issuing the usual notice
regarding illegal characters.
2018-08-25 17:40:39 +02:00
Christoph M. Becker
8754d44167 Fix #63839: iconv_mime_decode_headers function is skipping headers
We have to cater to the possibility that `=?` is not the start of an
encoded-word, but rather a literal `=?`.  If a line break is found
while we're still looking for the charset, we can safely assume that
it's a literal `=?`, and act accordingly.
2018-08-25 14:51:13 +02:00
Christoph M. Becker
6e1980e152 Fix #55146: iconv_mime_decode_headers() skips some headers
If we're expecting the start of an encoded word (`=?`), but instead of
the question mark get a line break (CR or LF), we must not append it to
the `pretval`.
2018-08-25 14:40:07 +02:00
Anatol Belski
919ead1157 Merge branch 'PHP-7.0' into PHP-7.1
* PHP-7.0:
  Fix test portability
2018-04-24 10:48:49 +02:00
Anatol Belski
3070883bcf Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  Fix test portability
2018-04-24 10:48:22 +02:00
Anatol Belski
4371af3e19 Fix test portability 2018-04-24 10:47:32 +02:00
Stanislav Malyshev
95ee9efa57 Merge branch 'PHP-7.0' into PHP-7.1
* PHP-7.0:
  Fix tsrm_ls
  Fix #76129 - remove more potential unfiltered outputs for phar
  Fix test
  Fix bug #76248 - Malicious LDAP-Server Response causes Crash
  Fix bug #76249 - fail on invalid sequences
  Fix #76130: Heap Buffer Overflow (READ: 1786) in exif_iif_add_value
  Fix bug #75981: prevent reading beyond buffer start
2018-04-23 22:00:24 -07:00
Stanislav Malyshev
5a18d7a0df Merge branch 'PHP-5.6' into PHP-7.0
* PHP-5.6:
  Fix tsrm_ls
  Fix #76129 - remove more potential unfiltered outputs for phar
  Fix test
  Fix bug #76248 - Malicious LDAP-Server Response causes Crash
  Fix bug #76249 - fail on invalid sequences
  Fix #76130: Heap Buffer Overflow (READ: 1786) in exif_iif_add_value
  Fix bug #75981: prevent reading beyond buffer start
2018-04-23 21:59:57 -07:00
Stanislav Malyshev
8dca5ae5ec Fix test 2018-04-22 22:19:51 -07:00
Stanislav Malyshev
06d309fd7a Fix bug #76249 - fail on invalid sequences 2018-04-22 21:26:39 -07:00
Christoph M. Becker
ec8bbba9c6 Merge branch 'PHP-7.0' into PHP-7.1 2016-08-30 01:18:59 +02:00
Christoph M. Becker
a837b2f6a3 Fix #72320: iconv_substr returns false for empty strings
For consistency with substr() and mb_substr(), iconv_substr() should return
an empty string instead of FALSE, when $offset == iconv_strlen($str).
2016-07-29 11:33:50 +02:00
Francois Laupretre
570bbed98e Add negative offset support to iconv_strpos() 2016-03-09 14:41:38 +01:00
Francois Laupretre
56fce8990f strpos()/stripos(): Add support for negative offsets 2016-03-09 14:41:37 +01:00
Anatol Belski
2b9c7f881a fix tests 2015-08-21 15:13:39 +02:00
Christoph M. Becker
c9554b90e4 added regression test for bug #69840 2015-06-17 13:40:19 +02:00
Stanislav Malyshev
33594b78ec Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Fix #48147 - implement manual handling of  //IGNORE for broken libc
2015-05-09 18:57:18 -07:00
Stanislav Malyshev
473ec539a1 Fix #48147 - implement manual handling of //IGNORE for broken libc
Conflicts:
	ext/iconv/iconv.c
2015-05-09 18:54:40 -07:00
Stanislav Malyshev
f8f1d275cf Fix #48147 - implement manual handling of //IGNORE for broken libc 2015-05-08 12:55:39 -07:00
Anatol Belski
c71cd8f8e0 remove the extra comma 2014-12-26 13:08:57 +01:00
Xinchen Hui
898cae2e63 Merge branch 'PHP-5.6' 2014-12-25 06:21:48 -05:00
Xinchen Hui
316f72ce28 Merge branch 'PHP-5.5' into PHP-5.6 2014-12-25 06:21:14 -05:00
Xinchen Hui
80260bcfa6 Fixed test 2014-12-25 06:20:52 -05:00
Andrea Faulds
e5eb9530ab Use "float" and "integer" in typehint and zpp errors 2014-12-21 13:23:02 +00:00
Andrea Faulds
01554bf3e4 Merge branch 'master' into zppFailOnOverflow 2014-11-29 01:45:54 +00:00
Andrea Faulds
f574ad140e skip tests on 32-bit 2014-11-28 23:30:15 +00:00
Anatol Belski
7582b57c87 Merge branch 'PHP-5.6'
* PHP-5.6:
  fix dir separator in test
  fork test for windows
  update for LiteSpeed
  update for LiteSpeed
2014-11-24 16:27:43 +01:00
Anatol Belski
3578e5b250 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  fix dir separator in test
  fork test for windows
  update for LiteSpeed
2014-11-24 16:25:38 +01:00
Anatol Belski
ac8b1a9de1 fork test for windows 2014-11-24 16:09:26 +01:00
Stanislav Malyshev
f782d6710d Merge branch 'PHP-5.6'
* PHP-5.6:
  test to function addcslashes
  test
  Test PHP Init Fail Without Params
  Add my information to this test
  Add a test for the exception cases of readline_read_history
  added some tests to datetime and dateinterval functions
  added various tests for XSLTProcessor and one test for iconv extension
  teste basico da funcao timezone_version_get
2014-11-23 17:26:35 -08:00
Stanislav Malyshev
a8dfb33db8 Merge branch 'PHP-5.5' into PHP-5.6
* PHP-5.5:
  Add my information to this test
  Add a test for the exception cases of readline_read_history
  added some tests to datetime and dateinterval functions
  added various tests for XSLTProcessor and one test for iconv extension
  teste basico da funcao timezone_version_get
2014-11-23 17:26:28 -08:00
Florian MARGAINE
344eba1be8 Fixes iconv tests 2014-11-09 21:29:21 +01:00
Rodrigo Prado de Jesus
813830e763 added various tests for XSLTProcessor and one test for iconv extension 2014-09-28 20:29:29 -03:00
Anatol Belski
79b2852da4 fixed the test
the cause for this to fail now was that _php_iconv_strpos had int for
the offset, but the int from userland is 64 bit, that was an overflow
cusing wrong behaviour
2014-08-21 13:49:09 +02:00
Yasuo Ohgaki
a84e5dc37d Remove unneeded string copy.
Allow to set ''(empty string values) internal/input/output_encoding for better compatibility. i.e. Runtime INI value changes.
More compliance to the RFC. Improve/add encoding handling tests. i.e. Rather than set encoding automagic way, detect it.
2014-03-27 17:20:57 +09:00
Yasuo Ohgaki
ca927bb47e Add missing E_DEPRECATED error for https://wiki.php.net/rfc/default_encoding 2014-03-12 17:54:22 +09:00
Yasuo Ohgaki
cbd108abf1 Implement RFC https://wiki.php.net/rfc/default_encoding 2014-02-13 11:54:52 +09:00
Xinchen Hui
e081c55fb5 Merge branch 'PHP-5.3' into PHP-5.4 2012-10-10 10:31:31 +08:00
Xinchen Hui
610c7fbe7b Remove executable permission on phpt 2012-10-10 10:27:49 +08:00
Pierre Joye
50fc27d119 - missing --SKIPIF-- 2011-09-06 09:28:23 +00:00
Pierre Joye
380aac7189 - add skipif 2011-09-06 06:42:11 +00:00
Hannes Magnusson
c6f9556f37 Fix the test in 5.4 and trunk.
older libraries will emmit error here, while new won't. So lets just suppress it rather then making the test uselessly fail for random people.
2011-09-05 11:07:38 +00:00
Hannes Magnusson
3d6fcf06d1 Fix the test in 5.4 and trunk.
older libraries will emmit error here, while new won't. So lets just suppress it rather then making the test uselessly fail for random people.
2011-09-05 11:07:38 +00:00