Commit Graph

282 Commits

Author SHA1 Message Date
Xinchen Hui
29e2ce597b Fixed segfault in file_get_contents 2014-02-21 16:32:46 +08:00
Dmitry Stogov
557994d50d Use better data structures (incomplete) 2014-02-19 01:12:05 +04:00
Dmitry Stogov
f4cfaf36e2 Use better data structures (incomplete) 2014-02-10 10:04:30 +04:00
Xinchen Hui
0f53e37494 Merge branch 'PHP-5.6' 2014-01-03 11:09:07 +08:00
Xinchen Hui
c081ce628f Bump year 2014-01-03 11:08:10 +08:00
Xinchen Hui
47c9027772 Bump year 2014-01-03 11:06:16 +08:00
Xinchen Hui
c0d060f5c0 Bump year 2014-01-03 11:04:26 +08:00
Kalle Sommer Nielsen
c83598119b Kill a TSRMLS_FETCH() in php_stream_context_set() by passing TSRMLS_CC to it
# For mysqlnd: Relevant PHP_API_VERSION are put in place for cross version compatibility
2013-12-18 09:19:24 +01:00
Andrey Hristov
92d27ccb05 Constify streams API and a few other calls down the rabbit hole.
(`char *` to `const char *` for parameters and few return values)
In a few places int len moved to size_t len.
2013-07-30 12:49:36 +02:00
Anatol Belski
f5b9d87fb9 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  fix possible resource leak and make sure there's something to qsort()
2013-07-10 13:31:22 +02:00
Anatol Belski
29ac511b8a fix possible resource leak and make sure there's something to qsort() 2013-07-10 13:00:47 +02:00
Remi Collet
44dbe6a815 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  keep previous test to avoid any behavior change
2013-04-02 16:31:45 +02:00
Remi Collet
731a5c5104 keep previous test to avoid any behavior change 2013-04-02 16:31:36 +02:00
Remi Collet
ce89bc8743 Merge branch 'PHP-5.4' into PHP-5.5
* PHP-5.4:
  fix comment
  Fixed Bug #64565 copy doesn't report failure on partial copy
2013-04-02 16:24:14 +02:00
Remi Collet
8e8a75444c fix comment 2013-04-02 16:24:00 +02:00
Remi Collet
6b4148bc97 Fixed Bug #64565 copy doesn't report failure on partial copy
_php_stream_copy_to_stream_ex, when mmap is possible, doesn't check
if actually written bytes match read bytes.

Fix this (paranoid check) to be consistent with non mmap mode

Seems hard to add a unit test, as this rely on a full filesystem.
2013-04-02 16:18:26 +02:00
Xinchen Hui
a666285bc2 Happy New Year 2013-01-01 16:37:09 +08:00
Xinchen Hui
0a7395e009 Happy New Year 2013-01-01 16:28:54 +08:00
Gustavo Lopes
f8e26d95f2 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  Fix bug #63240 on stream_get_line()
2012-10-12 20:24:13 +02:00
Gustavo Lopes
76601c4fd1 Fix bug #63240 on stream_get_line()
stream_get_line() could contain the delimiter string if that string
had more than one character. The bug manifested itself when a read on
the stream ended with part of the delimiter string and the read after
would start with the rest of the delimiter string; provided that
the data of first read did not complete the max length result of the
call to stream_get_line() with the partial delimiter used in that max
length return. In that case, the delimiter will still appear in
the result, divided in two subsequent return values. That is not a bug.

See <http://www.mail-archive.com/internals@lists.php.net/msg61325.html>
2012-10-12 20:23:43 +02:00
Xinchen Hui
e4a8fa6a15 Merge branch 'PHP-5.3' into PHP-5.4 2012-10-09 13:29:51 +08:00
Xinchen Hui
6284ef112e Fixed bug #63236 (Executable permission on various source files) 2012-10-09 13:28:31 +08:00
Gustavo Lopes
2634f55992 Merge branch 'PHP-5.4'
* PHP-5.4:
  Fix bug #63240 on stream_get_line()
2012-10-12 20:24:28 +02:00
Xinchen Hui
75a2c0d715 Merge branch 'PHP-5.4' 2012-10-09 13:30:22 +08:00
Stanislav Malyshev
c83457ed13 Merge branch 'PHP-5.4'
* PHP-5.4:
  improve overflow checks
  add NEWS
  fix potential overflow in _php_stream_scandir
2012-06-08 01:23:07 -07:00
Stanislav Malyshev
59eaa7c877 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  improve overflow checks
  fix potential overflow in _php_stream_scandir
2012-06-08 01:22:46 -07:00
Stanislav Malyshev
fc74503792 improve overflow checks 2012-06-08 01:21:37 -07:00
Stanislav Malyshev
426ccd3e7f Merge branch 'PHP-5.4'
* PHP-5.4:
  fix potential overflow in _php_stream_scandir
2012-06-07 23:09:37 -07:00
Stanislav Malyshev
10e8da1738 fix potential overflow in _php_stream_scandir 2012-06-07 23:09:18 -07:00
Stanislav Malyshev
7d04e0fb2e fix potential overflow in _php_stream_scandir 2012-06-07 23:08:35 -07:00
Nikita Popov
9e1b690e0c Merge branch 'PHP-5.4'
* PHP-5.4:
  Add NEWS entry for bug #61961
  Fixed Bug #61961 (file_get_content leaks when access empty file with max length)
2012-05-06 13:40:06 +02:00
Nikita Popov
bef6111609 Merge branch 'PHP-5.3' into PHP-5.4
* PHP-5.3:
  Add NEWS entry for bug #61961
  Fixed Bug #61961 (file_get_content leaks when access empty file with max length)
2012-05-06 13:33:47 +02:00
Reeze Xia
3e9923dd8d Fixed Bug #61961 (file_get_content leaks when access empty file with max length) 2012-05-06 18:27:26 +08:00
Gustavo André dos Santos Lopes
bd5f52fd94 Merge branch '5.4' 2012-04-07 16:34:37 +01:00
Gustavo André dos Santos Lopes
f7d4076785 Merge branch '5.3' into 5.4 2012-04-07 16:34:17 +01:00
Gustavo André dos Santos Lopes
0f180a63eb Fixed bug in new stream_get_line() when using NUL as a delimiter.
This is the issue Derick spotted a few days ago..
2012-04-07 16:32:19 +01:00
Gustavo André dos Santos Lopes
9a460497da MFH: 45a6f8d for 5.4.
- Further fix for bug #60455 (stream_get_line misbehaves if EOF is not detected
  together with the last read).
- Fixed bug #60817 (stream_get_line() reads from stream even when there is
  already sufficient data buffered). stream_get_line() now behaves more like
  fgets(), as is documented.
2012-03-19 16:34:31 +00:00
Gustavo André dos Santos Lopes
e132db7a57 - Fixed bug #61371 (resource leak). This bug had two parts, a long standing leak
already fixed in trunk/5.3 and now merged onto 5.4 and a leak introduced in
  fixing bug #61115. This better fix for #61115 fixes the leak (the inhibition
  for deleting the context was too broad) and so prevents segfaults in new
  circumstances (where the inhibition was not broad enough).
2012-03-17 19:37:30 +00:00
Gustavo André dos Santos Lopes
d974e44248 - Fixed bug #61371 (resource leak). This bug had two parts, a long standing leak
already fixed in trunk/5.3 and now merged onto 5.4 and a leak introduced in
  fixing bug #61115. This better fix for #61115 fixes the leak (the inhibition
  for deleting the context was too broad) and so prevents segfaults in new
  circumstances (where the inhibition was not broad enough).
2012-03-17 19:37:30 +00:00
Gustavo André dos Santos Lopes
ef19fba2d5 - Fixed bug #61371 (resource leak). This bug had two parts, a long standing leak
already fixed in trunk/5.3 and now merged onto 5.4 and a leak introduced in
  fixing bug #61115. This better fix for #61115 fixes the leak (the inhibition
  for deleting the context was too broad) and so prevents segfaults in new
  circumstances (where the inhibition was not broad enough).
2012-03-17 19:37:30 +00:00
Gustavo André dos Santos Lopes
cdc512afb3 - Oops committed old version of the patch in r324020. Fixed. See bug #61253. 2012-03-08 12:39:48 +00:00
Gustavo André dos Santos Lopes
aee85bc163 - Oops committed old version of the patch in r324020. Fixed. See bug #61253. 2012-03-08 12:39:48 +00:00
Gustavo André dos Santos Lopes
b976ebad35 - Oops committed old version of the patch in r324020. Fixed. See bug #61253. 2012-03-08 12:39:48 +00:00
Gustavo André dos Santos Lopes
0169020e49 - Fixed bug #61253: Wrappers opened with errors concurrency problem
#NOTE: There is a very small possibility that this will further break
#extensions that access wrapper->{err_stack, err_count}. On PECL SVN, rar is the
#only one and it may leak memory after this. I say "further break" because
#extensions that do that are already broken (will segfault) under ZTS, which is
#why this patch is necessary.
#There was what I deem as tacit acceptance from 5.3/5.4 RMs on this.
2012-03-08 12:30:59 +00:00
Gustavo André dos Santos Lopes
7166298d63 - Fixed bug #61253: Wrappers opened with errors concurrency problem
#NOTE: There is a very small possibility that this will further break
#extensions that access wrapper->{err_stack, err_count}. On PECL SVN, rar is the
#only one and it may leak memory after this. I say "further break" because
#extensions that do that are already broken (will segfault) under ZTS, which is
#why this patch is necessary.
#There was what I deem as tacit acceptance from 5.3/5.4 RMs on this.
2012-03-08 12:30:59 +00:00
Gustavo André dos Santos Lopes
f413b3726c - Fixed bug #61253: Wrappers opened with errors concurrency problem
#NOTE: There is a very small possibility that this will further break
#extensions that access wrapper->{err_stack, err_count}. On PECL SVN, rar is the
#only one and it may leak memory after this. I say "further break" because
#extensions that do that are already broken (will segfault) under ZTS, which is
#why this patch is necessary.
#There was what I deem as tacit acceptance from 5.3/5.4 RMs on this.
2012-03-08 12:30:59 +00:00
Gustavo André dos Santos Lopes
bcefc31e68 - Better fix for #61115.
- Fixed resource leak in stream_socket_client().
2012-02-24 22:56:21 +00:00
Gustavo André dos Santos Lopes
911330e62c - Better fix for #61115.
- Fixed resource leak in stream_socket_client().
2012-02-24 22:56:21 +00:00
Gustavo André dos Santos Lopes
cde7662226 - Fixed bug #61115 (stream related segfault on fatal error in
php_stream_context_link).
#run-tests.php is not currently detecting the segfault in the test
#Missing 5.4 merge
2012-02-22 11:45:26 +00:00
Gustavo André dos Santos Lopes
eb1ada852d - Fixed bug #61115 (stream related segfault on fatal error in
php_stream_context_link).
#run-tests.php is not currently detecting the segfault in the test
#Missing 5.4 merge
2012-02-22 11:45:26 +00:00
Gustavo André dos Santos Lopes
fc134965c8 - Revert r134029. The streams pooling API was never used in more
than 8 years and therefore unnecessarily adds complexity.
2012-02-21 21:55:00 +00:00
Gustavo André dos Santos Lopes
45a6f8d9a5 - Further fix for bug #60455 (stream_get_line misbehaves if EOF is not detected
together with the last read).
- Fixed bug #60817 (stream_get_line() reads from stream even when there is
  already sufficient data buffered). stream_get_line() now behaves more like
  fgets(), as is documented.
#withheld commit to 5.4
2012-01-22 20:30:37 +00:00
Gustavo André dos Santos Lopes
f5a4573182 - Further fix for bug #60455 (stream_get_line misbehaves if EOF is not detected
together with the last read).
- Fixed bug #60817 (stream_get_line() reads from stream even when there is
  already sufficient data buffered). stream_get_line() now behaves more like
  fgets(), as is documented.
#withheld commit to 5.4
2012-01-22 20:30:37 +00:00
Felipe Pena
e4ca0ed09f - Year++ 2012-01-01 13:15:04 +00:00
Felipe Pena
8775a37559 - Year++ 2012-01-01 13:15:04 +00:00
Felipe Pena
4e19825281 - Year++ 2012-01-01 13:15:04 +00:00
Gustavo André dos Santos Lopes
74d2b2f0bd - Fixed bug #60455: stream_get_line misbehaves if EOF is not detected together
with the last read.
2011-12-11 21:08:15 +00:00
Gustavo André dos Santos Lopes
faec3c5111 - Fixed bug #60455: stream_get_line misbehaves if EOF is not detected together
with the last read.
2011-12-11 21:08:15 +00:00
Gustavo André dos Santos Lopes
52c36e60c4 - Fixed bug #60455: stream_get_line misbehaves if EOF is not detected together
with the last read.
2011-12-11 21:08:15 +00:00
Gustavo André dos Santos Lopes
2acbe4c93e - Fixed borked refactoring in r307437 (using SUCCESS/FAILURE return instead of
out parameter).
- Fixed signature of php_stream_copy_to_stream_ex to return int in 5.4/trunk
  instead of size_t, as the function only returns SUCCESS/FAILURE.
2011-09-04 22:36:33 +00:00
Gustavo André dos Santos Lopes
d5c5bb0e96 - Fixed borked refactoring in r307437 (using SUCCESS/FAILURE return instead of
out parameter).
- Fixed signature of php_stream_copy_to_stream_ex to return int in 5.4/trunk
  instead of size_t, as the function only returns SUCCESS/FAILURE.
2011-09-04 22:36:33 +00:00
Gustavo André dos Santos Lopes
987c843674 - Fixed bug #52935 (call exit in user_error_handler cause stream relate core). 2011-07-05 16:09:06 +00:00
Gustavo André dos Santos Lopes
9898f9070f - Fixed bug #52935 (call exit in user_error_handler cause stream relate core). 2011-07-05 16:09:06 +00:00
Gustavo André dos Santos Lopes
afe4570cda - Fixed bug #52935 (call exit in user_error_handler cause stream relate core). 2011-07-05 16:09:06 +00:00
Ilia Alshanetsky
a311dc2443 Fixed bug #51997 (SEEK_CUR with 0 value, returns a warning). 2011-06-05 21:57:01 +00:00
Ilia Alshanetsky
6b85eb58b2 Fixed bug #51997 (SEEK_CUR with 0 value, returns a warning). 2011-06-05 21:57:01 +00:00
Ilia Alshanetsky
d846d0e80a Fixed bug #51997 (SEEK_CUR with 0 value, returns a warning). 2011-06-05 21:57:01 +00:00
Hannes Magnusson
9392b9cd73 Fixed bug #54946 (stream_get_contents infinite loop) 2011-05-29 12:29:19 +00:00
Hannes Magnusson
3b030ec75f Fixed bug #54946 (stream_get_contents infinite loop) 2011-05-29 12:29:19 +00:00
Hannes Magnusson
73c1488fec Fixed bug #54946 (stream_get_contents infinite loop) 2011-05-29 12:29:19 +00:00
Gustavo André dos Santos Lopes
8f77168384 - Merged to 5.3 change in trunk in _php_stream_free. This prevents the segfault
in the testcase for bug #53624. The testcase still has to be fixed though,
  because it only works as intended on Windows.
2011-05-08 19:59:42 +00:00
Gustavo André dos Santos Lopes
02302812e1 - Fixed accidental change. 2011-05-01 04:16:28 +00:00
Gustavo André dos Santos Lopes
8dfe15a12e - Fixed accidental change. 2011-05-01 04:16:28 +00:00
Gustavo André dos Santos Lopes
6df67ace20 - Fixed bug #54623 (Segfault when when writing to a persistent socket after
closing a copy of the socket).
2011-05-01 03:57:01 +00:00
Gustavo André dos Santos Lopes
93f65cdeac - Fixed bug #54623 (Segfault when when writing to a persistent socket after
closing a copy of the socket).
2011-05-01 03:57:01 +00:00
Gustavo André dos Santos Lopes
7f2937223d - Make fclose() actually close stream, even when the resource refcount is > 1.
This reverts the fix for bug #24557.
- Make php_stream_free delete the stream from the resources list, not merely
  decrease its refcount, as a single call to zend_list_delete does.           
#Not worth the risk merging to 5.3. While change #2 may prevent some segfaults,
#a quick and dirty survey to the codebase only showed calls to php_stream_close
#or php_stream_free on streams allocated in the same function, which would have
#refcount == 1. May be reconsidered.
2011-03-21 02:58:54 +00:00
Gustavo André dos Santos Lopes
c6ccc43285 - Fixed several comparisons that always result in true of false
due to signedness of one of the operands, either by removing
  dead code or fixing it.
- Thrown some comments around in php_stream_get_record.
- See http://www.mail-archive.com/internals@lists.php.net/msg49525.html
2011-02-01 18:11:16 +00:00
Gustavo André dos Santos Lopes
da0e2a416f - Fixed several comparisons that always result in true of false
due to signedness of one of the operands, either by removing
  dead code or fixing it.
- Thrown some comments around in php_stream_get_record.
- See http://www.mail-archive.com/internals@lists.php.net/msg49525.html
2011-02-01 18:10:35 +00:00
Felipe Pena
927bf09c29 - Year++ 2011-01-01 02:19:59 +00:00
Felipe Pena
0203cc3d44 - Year++ 2011-01-01 02:17:06 +00:00
Gustavo André dos Santos Lopes
5a1b77422a - Reverted unintended change. 2010-11-19 23:42:44 +00:00
Gustavo André dos Santos Lopes
1045aa2a7c - Fixed bug #52820 (writes to fopencookie FILE* not commited when seeking the
stream).
2010-11-15 18:22:52 +00:00
Gustavo André dos Santos Lopes
e10454ded8 - Fixed bug #52820 (writes to fopencookie FILE* not commited when seeking the
stream).
2010-11-15 18:22:52 +00:00
Gustavo André dos Santos Lopes
3a02cfb675 - Added leak_variable() function.
- Added mechanism to force outer streams to be closed before their inner ones.
- Fixed temp:// streams only handling correctly (through an ad hoc mechanism)  reverse closing order
  when the  inner stream is of type memory.
2010-11-15 03:05:32 +00:00
Gustavo André dos Santos Lopes
14a54b903e - Fixed forward stream seeking emulation in streams that don't support seeking
in situations where the read operation gives back less data than requested
  and when there was data in the buffer before the emulation started. Also made
  more consistent its behavior -- should return failure every time less data
  than was requested was skipped.
- Small performance improvement by correcting off-by-one error that generate an
  invalid call to the seek handler or read handler. in _php_stream_seek.
2010-10-13 03:13:29 +00:00
Gustavo André dos Santos Lopes
a1888f585c - Fixed forward stream seeking emulation in streams that don't support seeking
in situations where the read operation gives back less data than requested
  and when there was data in the buffer before the emulation started. Also made
  more consistent its behavior -- should return failure every time less data
  than was requested was skipped.
- Small performance improvement by correcting off-by-one error that generate an
  invalid call to the seek handler or read handler. in _php_stream_seek.
2010-10-13 03:13:29 +00:00
Pierre Joye
aa0ed267a2 - use TSRMLS_*C instead of TSRMLS_FETCH in zend_list_insert 2010-09-16 09:13:19 +00:00
Pierre Joye
dec8593fac - add lstat support for Windows 2010-09-01 09:49:53 +00:00
Pierre Joye
0d47dff287 - #51854, fix logic (patch by Tjerk) 2010-05-18 19:39:39 +00:00
Pierre Joye
3a19fee38b - #51854, fix logic (patch by Tjerk) 2010-05-18 19:39:39 +00:00
Kalle Sommer Nielsen
dd8e59da8f Removed safe_mode
* Removed ini options, safe_mode*
 * Removed --enable-safe-mode --with-exec-dir configure options on Unix
 * Updated extensions, SAPI's and core
 * php_get_current_user() is now declared in main.c, thrus no need to include safe_mode.h anymore
2010-04-26 23:53:30 +00:00
Antony Dovgal
d2699793e0 fix build 2010-04-08 09:56:18 +00:00
Pierre Joye
c264445a37 - WS 2010-04-08 07:55:35 +00:00
Pierre Joye
517d9bb1f2 - WS 2010-04-08 07:55:35 +00:00
Ilia Alshanetsky
d5b2007bed Fixed bug #50657 (copy() with an empty (zero-byte) HTTP source succeeds but returns false). 2010-01-06 12:54:53 +00:00
Sebastian Bergmann
9ba1e81665 sed -i "s#1997-2009#1997-2010#g" **/*.c **/*.h **/*.php 2010-01-03 09:23:27 +00:00
Felipe Pena
f61a06350a - Switching to TSRMLS_FETCH version 2009-11-16 10:36:27 +00:00
Felipe Pena
5411bb32a8 - Fixed bug #49936 (crash with ftp stream in php_stream_context_get_option())
(patch by Pierrick)
2009-11-15 20:30:57 +00:00
Arnaud Le Blanc
c79528a26d MFH: Fixed bug #48309 (stream_copy_to_stream() and fpasstru() do not
update stream position of plain files)
2009-05-17 14:58:10 +00:00
Arnaud Le Blanc
a2600facdd MFH: Fixed bug #48307 (stream_copy_to_stream() copies 0 bytes when $source
is a socket)
2009-05-16 20:23:06 +00:00