Commit Graph

537 Commits

Author SHA1 Message Date
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
02592974b4 - size_t may be shorter than long and definitely is not signed. Note that the
z modifier was only added in C99, so we can't use it.
2012-03-04 19:30:01 +00:00
Gustavo André dos Santos Lopes
3e6bc8fbce - size_t may be shorter than long and definitely is not signed. Note that the
z modifier was only added in C99, so we can't use it.
2012-03-04 19:30:01 +00:00
Gustavo André dos Santos Lopes
32c5643f6b - size_t may be shorter than long and definitely is not signed. Note that the
z modifier was only added in C99, so we can't use it.
2012-03-04 19:30:01 +00:00
Ilia Alshanetsky
0fe734b7c8 Fixed bug #60106 (stream_socket_server silently truncates long unix socket paths) 2012-03-03 20:36:14 +00:00
Ilia Alshanetsky
5525d80982 Fixed bug #60106 (stream_socket_server silently truncates long unix socket paths) 2012-03-03 20:36:14 +00:00
Ilia Alshanetsky
67db5de6b2 Fixed bug #60106 (stream_socket_server silently truncates long unix socket paths) 2012-03-03 20:36:14 +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
Mateusz Kocielski
ddcf55b640 * fixed bug #60704 unlink() bug with some files path
Reviewed by: rasmus@
2012-02-14 14:14:30 +00:00
Mateusz Kocielski
4d600bda70 * fixed bug #60704 unlink() bug with some files path
Reviewed by: rasmus@
2012-02-14 14:14:30 +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
Dmitry Stogov
ce52784052 Initialize structure (some fields may be missed in array returned from user handler). 2011-12-22 15:33:48 +00:00
Dmitry Stogov
0e563dfa93 Initialize structure (some fields may be missed in array returned from user handler). 2011-12-22 15:33:48 +00:00
Dmitry Stogov
3f5f5eefe5 Initialize structure (some fields may be missed in array returned from user handler). 2011-12-22 15:33:48 +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
Dmitry Stogov
4a25a7740d Fixed ZE specific compile warnings (Bug #55629) 2011-09-13 13:29:35 +00:00
Dmitry Stogov
e43ff1359e Fixed ZE specific compile warnings (Bug #55629) 2011-09-13 13:29:35 +00:00
Gustavo André dos Santos Lopes
08f78070a5 - 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
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
Xinchen Hui
9fb62f3382 Sync r314808 to 5_3 branch
Eliminated compiler warnings "comparison is always false",  "cast to pointer from integer of different siz" and tail zero warnings
2011-08-23 10:18:48 +00:00
Xinchen Hui
fa1883de19 Omitted GCC warning "comparison is always false" 2011-08-12 07:47:03 +00:00
Xinchen Hui
ba9546b8e5 Omitted GCC warning "comparison is always false" 2011-08-12 07:47:03 +00:00
Xinchen Hui
64fc565765 Avoiding strcpy, strcat, sprintf usage to make static analyzer happy 2011-08-09 12:16:58 +00:00
Xinchen Hui
5dc3195897 Avoiding strcpy, strcat, sprintf usage to make static analyzer happy 2011-08-09 12:16:58 +00:00
Xinchen Hui
0630945ac4 Avoiding strcpy, strcat, sprintf usage to make static analyzer happy 2011-08-09 12:16:58 +00:00
Stanislav Malyshev
fa78f7a4c0 retore open_basedir check for unlink 2011-07-31 22:43:21 +00:00
Stanislav Malyshev
2f1752cb49 retore open_basedir check for unlink 2011-07-31 22:43:21 +00:00
Pierre Joye
fc8afdf178 - Fixed bug 55124, recursive mkdir fails with current (dot) directory in path 2011-07-26 17:44:20 +00:00
Pierre Joye
db25201ffb - Fixed bug 55124, recursive mkdir fails with current (dot) directory in path 2011-07-26 17:44:20 +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
Stanislav Malyshev
f9088156f4 implement streams metadata API per RFC 2011-05-25 21:03:55 +00:00
Stanislav Malyshev
5c9080d3a6 implement streams metadata API per RFC 2011-05-25 21:03:55 +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
Pierrick Charron
1368364469 Fix common typos in the source code (Reported in Bug #54065)
# External libraries were excluded
# Thanks eitan at eitanadler dot com for the first patch :)
2011-04-03 21:46:52 +00:00
Pierrick Charron
e8486cc374 Fix common typos in the source code (Reported in Bug #54065)
# External libraries were excluded
# Thanks eitan at eitanadler dot com for the first patch :)
2011-04-03 21:46:52 +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
a3a5157286 - PHP_STREAM_OPTION_WRITE_BUFFER no longer disables the read buffer of a plain
stream when 0 is given as the value.
- PHP_STREAM_OPTION_WRITE_BUFFER no longer changes the chunk size in socket
  streams.
- Added stream_set_chunk_size() function.
- Some signedness fixes.
- Test for commit r308474, now that it's possible to actually test it.
2011-02-19 01:28:37 +00:00
Gustavo André dos Santos Lopes
3759331276 - Changed return value in userspace stream set_option to "not implemented",
instead of failure.
#Currently, there's no way to test this, because the only operations that have
#a default implementation, set_chunk_size and set_read_buffer are either not
#exposed or, in the 2nd case, completely delegated to the user implementation,
#which can only return true/false, not "not implemented" (and not implementing
#the set_option method in the userspace stream results in error).
2011-02-18 17:53:26 +00:00
Gustavo André dos Santos Lopes
9bbc114b59 - Classes that implement stream wrappers can define a method called
stream_truncate that will respond to truncation, e.g. through ftruncate.
  Closes feature request #53888.
2011-02-17 00:25:32 +00:00
Adam Harvey
2b4fb94e8e Fix bug #53913 (Streams functions assume HAVE_GLOB is defined). Patch by Chris
Jones.
2011-02-04 10:47:41 +00:00
Adam Harvey
521e5462ab Fix bug #53913 (Streams functions assume HAVE_GLOB is defined). Patch by Chris
Jones.
2011-02-04 10:47:41 +00:00
Gustavo André dos Santos Lopes
36d82e8a85 - Fixed bug #53903 (userspace stream stat callback does not separate the
elements of the returned array before converting them).
2011-02-01 22:55:17 +00:00
Gustavo André dos Santos Lopes
1f49902999 - Fixed bug #53903 (userspace stream stat callback does not separate the
elements of the returned array before converting them).
2011-02-01 22:55:17 +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
Pierre Joye
af9406de8e - don't continue if no valid option value 2011-01-20 07:38:00 +00:00
Pierre Joye
657c934513 - don't continue if no valid option value 2011-01-20 07:38:00 +00:00
Pierre Joye
7f3100976f - no need of assert here 2011-01-20 06:32:59 +00:00
Pierre Joye
966a82c776 - no need of assert here 2011-01-20 06:32:59 +00:00
Ilia Alshanetsky
93fd1bf53f Fixed variable re-declaration 2011-01-13 12:56:28 +00:00
Ilia Alshanetsky
c33795b25b Fixed variable re-declaration 2011-01-13 12:56:28 +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
8342c36f09 - Renamed php_stream_rep_nonstand_mode to
php_stream_mode_sanitize_fdopen_fopencookie, made it not
  exported and movied it from php_streams.h to
  php_streams_int.h.
2010-11-05 18:53:48 +00:00
Gustavo André dos Santos Lopes
d37e1ea243 - Renamed php_stream_rep_nonstand_mode to
php_stream_mode_sanitize_fdopen_fopencookie, made it not
  exported and movied it from php_streams.h to
  php_streams_int.h.
2010-11-05 18:53:48 +00:00
Gustavo André dos Santos Lopes
68107ae1c3 - Fixed bug #53241 (stream casting that relies on fdopen/fopencookie fails
with streams opened with, inter alia, the 'xb' mode).
2010-11-05 01:29:08 +00:00
Gustavo André dos Santos Lopes
0a35133524 - Fixed bug #53241 (stream casting that relies on fdopen/fopencookie fails
with streams opened with, inter alia, the 'xb' mode).
2010-11-05 01:29:08 +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
ed58636f00 - use TSRMLS_D/C with php_stream_context_alloc 2010-09-16 09:33:42 +00:00
Pierre Joye
daa90813fb - use TSRMLS_*C instead of TSRMLS_FETCH in zend_list_insert, missing header 2010-09-16 09:18:46 +00:00
Pierre Joye
aa0ed267a2 - use TSRMLS_*C instead of TSRMLS_FETCH in zend_list_insert 2010-09-16 09:13:19 +00:00
Felipe Pena
feda017cce - Fixed bug #49215 (make fails on glob_wrapper) 2010-09-10 21:33:50 +00:00
Felipe Pena
6ca2ea7109 - Fixed bug #49215 (make fails on glob_wrapper) 2010-09-10 21:33:50 +00:00