Commit Graph

378 Commits

Author SHA1 Message Date
Dmitry Stogov
02ee91dbb4 Fixed crash 2007-04-18 13:53:19 +00:00
Dmitry Stogov
e1814f0dbe WIN64 support 2007-04-16 08:09:56 +00:00
Dmitry Stogov
4de76f02ea Fixed 64-bit support 2007-04-09 15:38:58 +00:00
Marcus Boerger
0ad927dbf2 - MFH A stream wrapper might only allow directory access 2007-03-03 19:01:34 +00:00
Ilia Alshanetsky
1b8a85415d Fixed Bug #39396 (stream_set_blocking crashes on Win32). 2007-02-24 15:48:40 +00:00
Sara Golemon
c3935671cd MFH (r-1.82): Add retry for interrupted reads and graceful handling for failed retries 2007-02-23 23:09:14 +00:00
Marcus Boerger
e3d786be4e - MFH Fix logic 2007-02-22 23:26:03 +00:00
Antony Dovgal
4a95928d1d MFH: implement PHP_STREAM_FLAG_NO_CLOSE and avoid hacks 2007-02-21 21:57:21 +00:00
Ilia Alshanetsky
a92ef5e0dc Fixed a memory leak on highlight_file() with a non-existant file 2007-02-13 23:39:14 +00:00
Antony Dovgal
c8a4b13638 MFH: improve php_userstreamop_seek() 2007-02-13 19:50:59 +00:00
Marcus Boerger
ee3226e50e - MFH options/exports 2007-02-07 20:59:59 +00:00
Andi Gutmans
a11e0b5ef1 - Make sure to be ANSI C compliant 2007-02-05 05:15:16 +00:00
Marcus Boerger
0709a0490f - MFH Add PHPAPI to stuff needed by streams API for shared exts
- MFH Readonly issue fix to memory streams option handling (still not
  activated in 5.2.1 though)
2007-02-03 16:40:05 +00:00
Marcus Boerger
0903f26151 - Disable memory streams set option until 5.2.2 2007-01-27 20:31:51 +00:00
Marcus Boerger
d10beb67c3 - MFH truncate support for mem/temp streams 2007-01-27 20:25:11 +00:00
Nuno Lopes
58d4b44ae7 only 2 bits are needed for shutdown(2) method (only 3 possible values). this is new code in 5.2.1, so don't worry.. 2007-01-18 16:05:48 +00:00
Antony Dovgal
7ad1c3c5f2 MFH: add trailing '\0' to stream hashes 2007-01-15 17:07:08 +00:00
Antony Dovgal
7dd989fd4a revert the patch temporarily, I need to test a bigger patch in HEAD.. 2007-01-15 16:03:42 +00:00
Antony Dovgal
c463e98e99 MFH 2007-01-15 14:59:49 +00:00
Sebastian Bergmann
4223aa4d5e MFH: Bump year. 2007-01-01 09:36:18 +00:00
Dmitry Stogov
5436160dc6 Fixed heap overflow 2006-12-25 13:11:23 +00:00
Antony Dovgal
6aec52bde7 MFH 2006-12-21 01:18:28 +00:00
Antony Dovgal
f807343197 MFH 2006-12-21 01:08:04 +00:00
Antony Dovgal
41b55d9b78 MFH 2006-12-21 00:47:02 +00:00
Dmitry Stogov
03312cc0d9 Added function stream_socket_shutdown(). It is a wraper for system shutdown() function, that shut downs part of a full-duplex connection 2006-12-19 08:58:58 +00:00
Antony Dovgal
60bb494607 MFH: fix #39673 (file_get_contents causes bus error on certain offsets) 2006-11-29 11:12:59 +00:00
Antony Dovgal
090a83b974 ensure that bucket->brigade is NULL in newly created bucket 2006-11-21 20:58:17 +00:00
Hannes Magnusson
133bdb42e3 Fix ftruncate() with negative size on FreeBSD 2006-11-16 16:06:51 +00:00
Dmitry Stogov
daed379550 Removed unnecessary ftell() calls (one call for each included PHP file) 2006-11-10 13:18:35 +00:00
Dmitry Stogov
f22ae56bc9 Disabled reading from stream (calls to read()) after EOF 2006-11-10 13:10:16 +00:00
Dmitry Stogov
a5f951f27c Removed unnecessary checks for ISREG file and corresponding stat() calls on Windows 2006-11-10 10:55:26 +00:00
Rasmus Lerdorf
c8778c73c3 Mark memory streams as is_url 2006-11-04 20:43:28 +00:00
Dmitry Stogov
770b29803c Fixed mkdir("/tmp/foo//bar/log", 0777, true) 2006-10-19 09:49:44 +00:00
Sara Golemon
d8fc0ccfe1 MFH(r-1.38) Bugfix 38648: Don't assume all buckets are part of a brigade 2006-10-11 23:11:26 +00:00
Antony Dovgal
1cc0339d40 MFH: fix crash when parsing invalid hostnames/IPs 2006-10-11 12:53:56 +00:00
Ilia Alshanetsky
557838efa4 Last set of zend_hash_init() optimizations 2006-10-03 19:51:01 +00:00
Dmitry Stogov
dbae50bf13 Fixed wrong pipe detection code 2006-09-28 07:26:02 +00:00
Antony Dovgal
99b133d7a7 MFH: fix double free(), add test 2006-09-15 07:27:22 +00:00
Dmitry Stogov
2604f21fa6 Removed unused macro USE_ZEND_ALLOC 2006-09-14 09:58:27 +00:00
Ilia Alshanetsky
f0fd70fadb Fixed bug #37779 (empty include_path leads to search for files inside /). 2006-09-12 15:47:25 +00:00
Antony Dovgal
9fa594c2dd fix coverity issue #197
"I can't think of a reason to pass a NULL buf" (c) Wez
2006-09-10 13:01:37 +00:00
Ilia Alshanetsky
4427552b60 Fixed bug #38661 (mixed-case URL breaks url-wrappers). 2006-09-03 16:32:27 +00:00
Antony Dovgal
4e971e8874 MFH: fix #38199 (fclose() unable to close STDOUT and STDERR) 2006-08-28 17:15:03 +00:00
Dmitry Stogov
7dfbf5b2e4 Fixed bug #38488 (Access to "php://stdin" and family crashes PHP on win32) 2006-08-22 06:15:26 +00:00
Antony Dovgal
f42e9f5e15 MFH: fix #38450 (constructor is not called for classes used in userspace stream wrappers) 2006-08-14 15:01:29 +00:00
Antony Dovgal
4902fc6c25 MFH: fix #38086 (stream_copy_to_stream() returns 0 when maxlen is bigger than the actual length)
add tests
2006-07-13 12:00:17 +00:00
Hannes Magnusson
7a6fe06e4b url->URL 2006-06-29 14:40:49 +00:00
Hannes Magnusson
c4154145df MFH: plug memleak 2006-06-20 18:09:50 +00:00
Rasmus Lerdorf
6bfeea9eb9 MFH: Backported allow_url_include from HEAD. This directive allows
separate control of URL handling in includes/requires allowing sites to
enable allow_url_fopen without enabling remote includes.
2006-06-16 14:09:01 +00:00
Antony Dovgal
2f26d8d7ae MFH: don't leak when decoding failed 2006-06-06 14:09:12 +00:00
Antony Dovgal
073ee1397a MFH: no need to check if non-existing include_path complies with open_basedir setting 2006-06-05 22:39:50 +00:00
Edin Kadribasic
8b764bd08c Fixed bug #35886 (nlopes) 2006-06-05 22:19:36 +00:00
Marcus Boerger
59d2ce8258 - MFH Fix feof() 2006-05-23 22:31:25 +00:00
Marcus Boerger
e145343b57 - MFH Handle corrupt base64 data in data: url 2006-05-21 13:37:19 +00:00
Antony Dovgal
6557578657 MFH: initialize factory 2006-05-19 10:24:05 +00:00
Antony Dovgal
3a830a30f4 fix #37395 (recursive mkdir() fails to create nonexistent directories in root dir) 2006-05-16 13:05:02 +00:00
Marcus Boerger
5d43fe49f7 - MFH No need to have this controlled by allow_url_fopen 2006-05-14 19:15:31 +00:00
Marcus Boerger
3577115118 - MFH Add strict compliant RFC2397 support (no //) 2006-05-14 18:40:12 +00:00
Marcus Boerger
5b44266a5f - MFH RFC2397 decoding 2006-05-14 01:42:03 +00:00
Marcus Boerger
0c09d4cb63 - MFH RFC 2397 meta data handling 2006-05-14 01:06:09 +00:00
Marcus Boerger
2100a86198 - MFH Initial support for RFC2397 2006-05-13 17:58:58 +00:00
Wez Furlong
8663f1644d fix for #37158 2006-04-22 17:17:40 +00:00
Michael Wallner
f7a6327728 - Fix reading stream filters never notified about EOF 2006-04-20 17:43:18 +00:00
Marcus Boerger
fa922fb51c - MFH Fix seek/eof issue in temp streams 2006-03-18 19:57:00 +00:00
Marcus Boerger
5a69b29082 - Warning fixes by Steph 2006-02-26 10:57:00 +00:00
Sara Golemon
3a4a0e3cef MFH: Prevent bindport from being used uninitialized 2006-02-02 18:16:43 +00:00
Ilia Alshanetsky
5f9dde24d8 Only report mkdir() errors if error reporting option is set. 2006-01-17 02:32:09 +00:00
Antony Dovgal
3062348c75 MFH: fix #35999 (recursive mkdir() does not work with relative path like "foo/bar") 2006-01-16 19:48:23 +00:00
Ilia Alshanetsky
778c635c40 Fixed bug #35916 (Duplicate calls to stream_bucket_append() lead to a crash). 2006-01-10 16:14:16 +00:00
Marcus Boerger
0d0f3e290b - Fix issue with memset seeking
- Fix issue with shutdown order of temp/memory stream
2006-01-05 22:03:07 +00:00
foobar
5bd93221a8 bump year and license version 2006-01-01 12:51:34 +00:00
Antony Dovgal
248be6fcfc fix #35781 (stream_filter_append() can cause segfault) 2005-12-23 14:32:11 +00:00
Antony Dovgal
aec3b4e73c fix #35740 (memory leak when including a directory) 2005-12-20 09:47:57 +00:00
Zeev Suraski
59dc41f761 Fix prototype 2005-12-18 15:38:08 +00:00
Marcus Boerger
71c7cdb7d9 - Fix temp/memory stream modes 2005-12-14 00:06:09 +00:00
foobar
a3af52c11e MFH: list_entry -> zend_rsrc_list_entry 2005-12-05 23:38:04 +00:00
Antony Dovgal
1a78dc5fbf MFH: fix #35079 (stream_set_blocking(true) toggles, not enables blocking)
patch by askalski at gmail dot com
2005-11-17 14:19:40 +00:00
Wez Furlong
890f7f46b4 Fix #34957; file access checks should use VCWD_ACCESS() 2005-10-22 17:02:10 +00:00
Marcus Boerger
6b0de601be - MFH C vs. C++ fix 2005-10-07 07:38:59 +00:00
Marcus Boerger
35c82a75eb - MFH Fix issue (endless loop) with temp/memory streams 2005-10-06 21:31:25 +00:00
Derick Rethans
b842d8e3d8 - MFH: Fixed a bug where stream_get_meta_data() did not return the "uri"
element for files opened with tmpname().
2005-08-26 12:56:07 +00:00
foobar
23e671a51e - Bumber up year 2005-08-03 14:08:58 +00:00
Wez Furlong
8c57c3a9fe compile before commit (gah!) 2005-07-18 14:12:52 +00:00
Wez Furlong
c4ba9edd57 Apparently our pipe detection code just above this isn't foolproof.
Catch it here.
2005-07-18 13:28:24 +00:00
Marcus Boerger
7316ee0399 - Fix problem with debug mode on selective machines 2005-07-17 18:39:24 +00:00
Ilia Alshanetsky
87d6f497f7 Likely fix for bug #33140 2005-06-24 02:04:19 +00:00
Ilia Alshanetsky
3b79941168 Fixed bug #31054 (safe_mode & open_basedir checks only check first
include_path value).
2005-06-20 15:59:13 +00:00
Sebastian Bergmann
1d9baf3dd5 ZTS fix. 2005-06-14 05:13:01 +00:00
Ilia Alshanetsky
b36d4ae02c Added bindto socket context option. 2005-06-14 02:39:42 +00:00
Wez Furlong
6b29526617 Don't crash when compiled with the zend memory manager disabled. 2005-06-06 01:52:18 +00:00
Dmitry Stogov
8b134356ef Disabled search of recored separator outside of buffer 2005-06-01 15:11:44 +00:00
Antony Dovgal
041b37b2b9 make it compile on Win32 (thanks to Sebastian for noticing) 2005-05-24 10:13:52 +00:00
Ilia Alshanetsky
d367b7b913 Fixed bug #32810 (temporary files not using plain file wrapper). 2005-05-23 21:48:51 +00:00
Antony Dovgal
d4db964aed revert by Wez's request 2005-05-23 15:36:58 +00:00
Antony Dovgal
201fbc48e6 fix bug #32810 (fread after tmpfile() reads only 8192 bytes) 2005-05-23 11:51:53 +00:00
Antony Dovgal
d5bb03b11a fix bugs #32742 (segmentation fault when the stream with a wrapper is not closed),
#32171 (Userspace stream wrapper crashes PHP)
2005-05-16 08:37:14 +00:00
Wez Furlong
4cabeaf1c7 fix inverted logic and thus Bug #27508 2005-05-11 02:02:27 +00:00
Ilia Alshanetsky
edd4860674 Attempt to eliminate seek() prior to every write. 2005-04-29 19:01:33 +00:00
Antony Dovgal
2a83dbdf1c revert the patch, the problem seems to be somewhere else 2005-04-11 15:19:27 +00:00
Sara Golemon
dc8823b565 Fold validation into an inlined function per Andi's suggestion 2005-04-09 19:36:49 +00:00
Uwe Schindler
cd47b3c542 Bug #32614 - prevent from crahsing with segfault on solaris if fdopen() fails - this fixes NOT the stdio-problem on solaris! 2005-04-07 07:29:14 +00:00
Ilia Alshanetsky
a7ae41bf89 Fixed bug #31363 (broken non-blocking flock()).
# Patch by ian at snork dot net
2005-04-06 13:57:30 +00:00
Antony Dovgal
e7a2efe053 do not try to read after EOF 2005-04-06 08:26:06 +00:00
Ilia Alshanetsky
d9aea604b3 Fixed bug #30362 (stream_get_line() not reading data correctly). 2005-04-05 03:00:04 +00:00
Sara Golemon
51852db0df BugFix #32563
This could have been done in stream_wrapper_register()
without introducing the slight performance hit on
wrapper registration since anyone registering a wrapper
in an extension should know better.

The important thing is that since locate_wrapper makes
the assumption that all schemes will be /^[a-z0-9+.-]+$/i
Anything which registers them should make the same assumption as well.
2005-04-04 19:34:32 +00:00
Sara Golemon
29ede46872 BugFix #31137 stream_filter_remove() segfaults when stream already closed 2005-03-29 04:02:03 +00:00
Rasmus Lerdorf
00832b763f Silence a warning here on systems where off_t is a long long. 2005-03-17 16:26:24 +00:00
Andi Gutmans
f4cdd366e1 - Fix comment 2005-02-24 03:04:57 +00:00
Ilia Alshanetsky
8aaafb1ae9 Increase maximum mmapable file size to 2mb from 1mb. 2005-02-23 22:41:05 +00:00
Ilia Alshanetsky
c7b931d80d Fixed bug #31515 (Improve performance of scandir() by factor of 10 or so). 2005-02-22 00:24:13 +00:00
Wez Furlong
f400f0e665 add an open mode for the memory streams that allows the stream to take
ownership of the passed-in buffer
2005-02-06 21:41:36 +00:00
Ilia Alshanetsky
d98a44d483 Fixed bug #29801 (Set limit on the size of mmapable data). 2004-11-15 23:43:12 +00:00
Rob Richards
d563495a24 add support for file://localhost/
support file:/// under windows again
2004-11-11 13:08:32 +00:00
Antony Dovgal
aa35b11afe fix Win32 & Netware build 2004-10-28 05:05:20 +00:00
Antony Dovgal
ceacc834fb fix bug #30388 (rename across filesystems loses ownership and permission info) 2004-10-27 11:58:49 +00:00
Ilia Alshanetsky
5c04e39383 Fixed bug #30362 (stream_get_line() not handling end string correctly). 2004-10-11 18:31:49 +00:00
Wez Furlong
b7182e85c7 Fix the return value check too 2004-10-11 01:40:41 +00:00
Wez Furlong
7cb4e769ff check the correct flag for async connect 2004-10-11 01:30:19 +00:00
Christian Stocker
bd99d77bf6 - Fixed bug #27183 (Userland stream wrapper segfaults on stream_write)
Was applied to PHP 4 ages ago, but not to PHP 5 branch
2004-10-08 14:40:11 +00:00
Anantha Kesari H Y
b855337d39 CLIB_STAT_PATCH check is redundant. So removing it 2004-09-23 13:07:43 +00:00
Wez Furlong
ff4e970fb1 Make new poll stuff work on win32 (and still be safe on unix) 2004-09-17 14:36:55 +00:00
Wez Furlong
99e290f882 Fix for Bug #24189: possibly unsafe select(2) usage.
We avoid the problem by using poll(2).

On systems without poll(2) (older bsd-ish systems, and win32), we emulate
poll(2) using select(2) and check for valid descriptors before attempting
to access them via the descriptor sets.

If an out-of-range descriptor is detected, an E_WARNING is raised suggesting
that PHP should be recompiled with a larger FD_SETSIZE (and also with a
suggested value).

Most uses of select(2) in the source are to poll a single descriptor, so
a couple of handy wrapper functions have been added to make this easier.

A configure option --enable-fd-setsize has been added to both the unix and
win32 builds; on unix we default to 16384 and on windows we default to 256.
Windows FD_SETSIZE imposes a limit on the maximum number of descriptors that
can be select()ed at once, whereas the unix FD_SETSIZE limit is based on the
highest numbered descriptor; 256 should be plenty for PHP scripts under windows
(the default OS setting is 64).

The win32 specific parts are untested; will do that now.
2004-09-17 12:44:56 +00:00
Sara Golemon
34550382d8 Added stream_filter_remove() to cancel a stream filter.
Register filters as resources when
instantiated by stream_filter_(ap|pre)pend().

Export php_stream_filter_flush() internal function to wind buffered data
out of a particular filter until consumed by a later filter or sent to
stream->readbuffer or stream->ops->write()
2004-09-14 03:48:17 +00:00
Sara Golemon
9cd4320b65 Allocating hash tables should be done via macro, not directly 2004-09-13 21:07:22 +00:00
Sara Golemon
ed5dcbff9b A little extra code to allow overriding plainfiles wrapper as well 2004-09-10 21:50:29 +00:00
Sara Golemon
955b43ba12 Add stream_wrapper_unregister()
Disables a wrapper (user-defined or built-in) for the life of the request.

Add stream_wrapper_restore()
Restores the wrapper originally defined at the time the request started
to the protocol name mentioned.
2004-09-10 20:45:35 +00:00
Sara Golemon
d179ac771c Handle maxlen when stream can't be mmaped 2004-09-08 18:42:15 +00:00
Antony Dovgal
fd6d9cbeac fix bug #29723 (file_get_contents() fails with the file:// wrapper under Win32) 2004-08-31 11:37:02 +00:00
Ilia Alshanetsky
c84bd49fb5 Using int when long should be used. 2004-08-22 18:05:24 +00:00
Wez Furlong
b21a7357fc Fix for #29256 from Dmitry, very slightly modified 2004-08-10 13:44:43 +00:00
Wez Furlong
d0be029908 zts fix... 2004-07-31 16:34:44 +00:00
Wez Furlong
ae7285d658 Misc sendto/recvfrom tweaks that have been pending here for a while... 2004-07-31 10:56:55 +00:00
Wez Furlong
05a3fabacb Make sure this is initialized... 2004-07-31 10:49:09 +00:00
Wez Furlong
71078de71a Implement an fstat cache for plain files. 2004-07-31 10:09:25 +00:00
Wez Furlong
971fcd4254 Looks like Sara forgot to change this too. 2004-07-13 16:34:56 +00:00
Wez Furlong
ae40d0ef2a Fix file_get_contents() bug... 2004-07-12 20:59:24 +00:00
Wez Furlong
cd732f1a3f RIP: greedy ready problems
This allows people to use fread($fp, filesize($filename)) for regular files,
but packet-based non-greedy reads for everything else.
2004-07-10 10:54:09 +00:00
Wez Furlong
8f435013ff Fix for Bug #28964 fread "greedy" behaviour 2004-06-29 21:51:53 +00:00
Sara Golemon
a2c24ae90e BugFix#28868 (Part Two): This fixes thread unsafety in the userspace
filters which relates to the fix just applied for userspace wrappers.
2004-06-21 21:08:05 +00:00
Sara Golemon
7fcfa8865e BugFix#28868: Wrapper hash not thread-safe.
Userdefined wrappers were being registered into a global wrapper hash
which can cross threads.  Termination of once instance then has the
potential to leave an active stream in another instance with no wrapper
leading to segfault.
2004-06-21 18:58:55 +00:00
Wez Furlong
b369925372 Fix #25939 for good this time.
# How could I miss this??
2004-05-27 13:04:14 +00:00
Wez Furlong
dd9ac710f1 Fix silly mistake.
Thanks Antony :)
2004-05-26 21:19:21 +00:00
Wez Furlong
6873d6839d *sigh*, obviously, we need this to be able to use sapi_module.name 2004-05-25 13:23:20 +00:00
Wez Furlong
ff0ee48537 DEBUG -> PHP_DEBUG 2004-05-25 13:17:01 +00:00
Wez Furlong
146255f35c check if it matches... not if it doesn't... 2004-05-25 13:00:25 +00:00
Wez Furlong
c6dff79138 In debug mode, under CLI don't close stderr.
This is so that we can see any error reports.

# for extra paranoia, could limit this check to happen only after the script is
# finished running.
2004-05-25 12:59:15 +00:00
Sara Golemon
0dae58bb2a Bugfix #28300 Userspace stream/filter names don't need to be lowercased. 2004-05-06 14:29:33 +00:00
Sara Golemon
0180c36951 BugFix#28287 stream_*_register() not calling __autoload(). 2004-05-05 18:18:57 +00:00
Wez Furlong
0fb4bf9771 Fixed bug #19749 (shouldn't mmap() files larger than memory_limit) 2004-04-21 12:02:47 +00:00
Sara Golemon
fac9416797 Only wind filters when appending to the read chain. 2004-04-01 03:52:34 +00:00