Commit Graph

3358 Commits

Author SHA1 Message Date
Gustavo André dos Santos Lopes
0de2e61cab - Added socket_import_stream().
- Fixed socket_strerror.phpt
- Made php_set_sock_blocking return FAILURE on fcntl error.
- Made socket_set_block()/socket_set_nonblock() emit warning on error.
2011-03-22 00:44:23 +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
Pierre Joye
406dd6e8ca - windows only 2011-03-15 17:14:32 +00:00
Pierre Joye
9319359dc9 - make setlocale thread only, drastically reduce TS related crashes in error mgt and other parts like pcre, and actually a good thing (tm) 2011-03-15 17:13:44 +00:00
Pierrick Charron
4a0831743d Remove unused variable 2011-03-13 05:25:45 +00:00
Moriyoshi Koizumi
b2ddc6de23 Fix ZTS build. 2011-03-06 07:06:55 +00:00
Moriyoshi Koizumi
cdb9ee0d1a Fix zend.multibyte oddities. Hope this will address all the known problems. 2011-03-06 07:00:30 +00:00
Pierre Joye
12bdec05a4 - fix regression (carsten_sttgt@gmx.de) 2011-02-25 11:28:33 +00:00
Gustavo André dos Santos Lopes
2a6968e43a - Fixed bug #54055 (buffer overrun with high values for precision ini
setting).
#This fix (for g/G/k/H modes) is done at a different level than that for the
#modes e/E/f/F, at a bit higher level and therefore with less coverage. I
#chose this because it addresses the problem where it is -- the calling function
#that passes a buffer too small to php_gcvt.
2011-02-21 06:53:24 +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
Gustavo André dos Santos Lopes
257b994fdc - Changed default serialize_precision from 100 to 17, as discussed in internals. 2011-02-08 21:40:51 +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
Kalle Sommer Nielsen
c5e86e5a8e Fix ZTS build 2011-02-03 23:57:59 +00:00
Scott MacVicar
ca378eefa0 Add header_register_callback(), allows a userland function
to be called as all the headers are being sent and after all
of the default headers have been merged.

headers_list(), header_remove() and header() can all be used
inside the callback.

<?php

header('Content-Type: text/plain');
header('X-Test: foo');

function foo() {
  foreach (headers_list() as $header) {
    if (strpos($header, 'X-Powered') !== false) {
      header_remove('X-Powered-By');
    }
    header_remove('X-Test');
  }
}

$result = header_register_callback('foo');
echo "a";
2011-02-03 16:47:28 +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
Felipe Pena
96996ec557 - Removed accidental changes 2011-01-20 12:32:41 +00:00
Pierre Joye
5c38e6cc40 - should not have been applied 2011-01-20 12:23:30 +00:00
Pierre Joye
657c934513 - don't continue if no valid option value 2011-01-20 07:38:00 +00:00
Pierre Joye
966a82c776 - no need of assert here 2011-01-20 06:32:59 +00:00
Pierre Joye
af0c734f4f - check if strdup succeeds 2011-01-20 06:23:35 +00:00
Pierre Joye
458ce08ab3 - path len check and fix buffer overrun 2011-01-19 14:21:46 +00:00
Ilia Alshanetsky
86550a9fed Win32 build fix 2011-01-19 13:09:05 +00:00
Pierre Joye
95388b7cda - fix regression introduced in 5.3.4 in open_basedir on windows/novell with trailing fwd slash 2011-01-18 22:20:09 +00:00
Ilia Alshanetsky
b5e12bd4da Fixed variable re-declaration 2011-01-18 13:17:23 +00:00
Pierre Joye
52aa5735f1 - path len sanity check 2011-01-17 14:29:16 +00:00
Andrey Hristov
0048446fdd gcc barks about these, so clean it 2011-01-14 12:32:27 +00:00
Ilia Alshanetsky
93fd1bf53f Fixed variable re-declaration 2011-01-13 12:56:28 +00:00
Ilia Alshanetsky
d5af830385 Added missing success check around chmod() for windows during temp file creation 2011-01-11 12:57:19 +00:00
Pierre Joye
80e5f0f774 - remove local redeclaration 2011-01-10 08:28:47 +00:00
Felipe Pena
0203cc3d44 - Year++ 2011-01-01 02:17:06 +00:00
Jani Taskinen
dfb0e70844 - Typos, WS, CS 2010-12-16 12:25:27 +00:00
Ilia Alshanetsky
9c30a3398a Fixed bug #53541 (format string bug in ext/phar). 2010-12-14 17:00:36 +00:00
Pierre Joye
a7ffa09e18 - add PHP_INSTALL_HEADERS to all parts (core&exts) exposing headers, generate the install-headers cmd 2010-12-11 22:18:10 +00:00
Gustavo André dos Santos Lopes
6654a4ade5 - Added enable_post_data_reading ini option to allow inhibiting POST data consumption. 2010-12-09 20:35:59 +00:00
Dmitry Stogov
755c2cd0d8 Removed compile time dependency from ext/mbstring 2010-12-08 11:27:34 +00:00
Jani Taskinen
72ae65bc9d - CS and "de-facto" style of returning NULL for failing parse-params, sync partially with PHP_5_3 too (reordering part :) 2010-12-03 15:34:24 +00:00
Dmitry Stogov
dcb65e76da WS and cosmethic changes 2010-12-02 09:40:53 +00:00
Pierre Joye
722457594b - Fixed #53409, sleep() return NULL on Windows 2010-11-26 18:25:13 +00:00
Dmitry Stogov
ab93d8c621 Added multibyte suppport by default. Previosly php had to be compiled with --enable-zend-multibyte. Now it can be enabled or disabled throug zend.multibyte directive in php.ini 2010-11-24 05:41:23 +00:00
Pierre Joye
1f454695a4 - fixed #53352 2010-11-23 22:14:54 +00:00
Kalle Sommer Nielsen
547691766a Fixed gettimeofday() usage for Ilia's REQUEST_TIME improvement on Windows 2010-11-22 15:43:46 +00:00
Gustavo André dos Santos Lopes
5a1b77422a - Reverted unintended change. 2010-11-19 23:42:44 +00:00
Jani Taskinen
ab88e60310 - Fix possible crashes in 64bit builds caused by usage of int instead of size_t 2010-11-17 14:09:46 +00:00
Jani Taskinen
2f27a0b1b8 - Cleanup 2010-11-17 11:55:37 +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
Jérôme Loyet
e1b87cce1f - Fixed #52045 (FPM tries to open php.ini from the current dir)
- Add php_ini_ignore_cwd to _sapi_module_struct
2010-11-11 17:24:27 +00:00
Kalle Sommer Nielsen
584ddb0c6e Added new constant; ZEND_MULTIBYTE to check whether PHP was compiled using --enable-zend-multibyte or not instead of sniffing phpinfo() (FR #52348) 2010-11-11 01:43:53 +00:00
Ilia Alshanetsky
f89effd2a8 Updated _SERVER['REQUEST_TIME'] to include microsecond precision. 2010-11-06 17:14:21 +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
Adam Harvey
7f0d3f7d70 Fix bug #53226 (file_exists fails on big filenames). 2010-11-05 05:28:07 +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
Michael Wallner
823d7cb55f explicitness FTW; it should have been like that before, so it wouldn't have happened 2010-11-03 08:35:16 +00:00
Felipe Pena
4667771a5f - Fixed no bailout address error and posix tests 2010-11-02 18:06:39 +00:00
Gustavo André dos Santos Lopes
743f50927c - Fixed bug #53153 (memory leak with phpinfo() + output buffering + zlib compression). 2010-11-02 03:49:49 +00:00
Gustavo André dos Santos Lopes
da400e7500 - Fixed bug #53180 (post_max_size=0 not disabling the limit when the content
type is application/x-www-form-urlencoded or is not registered with PHP).
2010-10-27 14:56:51 +00:00
Gustavo André dos Santos Lopes
1f191e4d2b - Implemented request #44164, zlib.output_compression is now implicitly
disabled when the header "Content-length" is set.
#One could argue that any output handler could change the size of the
#response, so this exception for zlib.output_compression is an
#inconsistency. However, zlib.output_compression is presented as a
#performance setting, whose value should have no effect on the
#correctness of the scripts. This was not the case. Setting the
#header "content-length" and enabling zlib.output_compression was
#a recipe for infringing section 4.4 of RFC 2616.
2010-10-26 02:16:21 +00:00
Dmitry Stogov
3690ce39d9 zend_collect_module_handlers() has to be called after zend_extensions startup, because they can register additional 'hidden' extensions 2010-10-15 07:30:24 +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
Gustavo André dos Santos Lopes
e1aa908468 - Implemented FR #50692, not uploaded files don't count towards
max_file_uploads limit.
- As a side improvement, temporary files are not opened for
  empty uploads and, in debug mode, 0-length uploads.
2010-10-04 01:27:33 +00:00
Gustavo André dos Santos Lopes
00f75c79ca - Fixed a small mistake in the fix for bug #50953 that made connection timeouts not be detected as such. 2010-10-02 18:32:20 +00:00
Pierre Joye
c8a717a2b1 - Fixed possible flaw in open_basedir (CVE-2010-3436) 2010-09-28 13:29:33 +00:00
Kalle Sommer Nielsen
1ac15b2f8e Added TSRMLS macros into php_get_current_user() 2010-09-23 04:13:36 +00:00
Pierre Joye
05383a1072 - drop TSRMLS_FETCH in sapi_register_* (won't bring much at runtime :) ) and cleanup/group the upgrade guide, no need of twenty titles for the same change 2010-09-17 08:41:05 +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
Pierre Joye
4d8d26d0db - open_basedir symlink support for Windows 2010-09-10 17:45:13 +00:00
Adam Harvey
2441ddf10e Fix bug #52802 (Out-of-date comment for
file_get_contents/php_stream_copy_to_mem) by updating the relevant comments.
2010-09-10 03:08:05 +00:00
Adam Harvey
02b2a28882 Fix bug #52786 (PHP should reset section to [PHP] after ini sections). Patch by
Fedora at famillecollet dot com.
2010-09-09 05:11:05 +00:00
Pierre Joye
6b72fef134 - fix the fix for bug #52323 2010-09-08 11:51:11 +00:00
Pierre Joye
123ab59b9c - WS 2010-09-08 10:26:59 +00:00
Pierre Joye
487746cf39 - Fix bug #52323, return value of php_network_connect_socket should be set even if the caller does not care about the error_string 2010-09-08 10:25:40 +00:00
Pierre Joye
7ce4f4955d - fix bug #50953, socket will not connect to IPv4 address when the host has both ipv4 and ipv6 addresses 2010-09-07 09:47:36 +00:00
Pierre Joye
ada5423308 - WS 2010-09-01 10:16:48 +00:00
Pierre Joye
dec8593fac - add lstat support for Windows 2010-09-01 09:49:53 +00:00
Felipe Pena
1fc65cbf03 - Fixed crash on non-Windows build 2010-08-30 21:34:54 +00:00
Pierre Joye
2721bbfcf9 - fix possible leak and error while fetching PHPRC 2010-08-30 17:05:56 +00:00
Pierre Joye
100228aae1 - use TSRMLS_CC instead of TSRMLS_FETCH in virtual_file_ex 2010-08-30 09:38:47 +00:00
Dmitry Stogov
caffc1c972 Preallocate zend_hash instead of allocation/deallocation it on each request 2010-08-27 06:09:18 +00:00
Dmitry Stogov
ab6ce922e2 Use stack instead of heap 2010-08-26 12:20:35 +00:00
Kalle Sommer Nielsen
34b631f679 Pass the TSRMS pointers to sapi_module_struct.log_message, this saves some TSRMLS_FETCH() calls in a few of our SAPI's 2010-08-18 13:34:40 +00:00
Kalle Sommer Nielsen
159cd6916d Fixed compiler warnings in main/ 2010-08-17 12:49:19 +00:00
Kalle Sommer Nielsen
a448b6a72b MFB53: Changed deprecated ini options on startup from E_WARNING to E_DEPRECATED (Fixes #52570)
# Some of the updated tests were to make them sync with 5.3 although they don't run on trunk anymore
2010-08-11 21:41:30 +00:00
Dmitry Stogov
f33d2c5fb7 Optimized defaut Content-Type HTTP header processing 2010-07-14 15:20:44 +00:00
Dmitry Stogov
f0c8366a9e - use interned strings for auto globals
- $GLOBALS became a JIT autoglobal, so it's initialized only if used (this may affect opcode caches)
2010-07-08 14:05:11 +00:00
Dmitry Stogov
b4216e0a82 Use zend_stream API to open main PHP script in CGI/FastCGI. This allows to override the open function by opcode caches and eliminate the actual open syscall. 2010-07-07 16:54:55 +00:00
Antony Dovgal
9d65730961 fix minor memleak 2010-06-09 11:04:03 +00:00
Antony Dovgal
01f828ebb0 fix bug #51276 (php_load_extension() is missing when HAVE_LIBDL is undefined) 2010-06-08 12:54:11 +00:00
Michael Wallner
99da695ec9 fix cxx build 2010-06-02 12:49:12 +00:00
Michael Wallner
43154f2a7c * raise warning if zend_fcall_info_init() cannot resolve the callback
* fix pointer mismatch
2010-06-01 13:16:33 +00:00
Michael Wallner
11d24c1593 * implement new output API, fixing some bugs and implementing some feature
requests--let's see what I can dig out of the bugtracker for NEWS--
  and while crossing the road:
   * implemented new zlib API
   * fixed up ext/tidy (what was "s&" in zend_parse_parameters() supposed to do?)

Thanks to Jani and Felipe for pioneering.
2010-05-31 10:29:43 +00:00
Antony Dovgal
8d64074951 use correct condition in the if 2010-05-25 19:19:45 +00:00
Dmitry Stogov
f7ce69585c - Interned string related callbacks moved turned from compiler_globals into real globals
- Updated API version number
2010-05-25 09:00:20 +00:00
Pierre Joye
3a19fee38b - #51854, fix logic (patch by Tjerk) 2010-05-18 19:39:39 +00:00
Antony Dovgal
cc4a178345 add the constant back. quite a lot of code uses it. 2010-04-28 10:36:33 +00:00