diff options
| author | Xinchen Hui <laruence@gmail.com> | 2015-09-02 23:36:43 +0800 | 
|---|---|---|
| committer | Xinchen Hui <laruence@gmail.com> | 2015-09-02 23:36:43 +0800 | 
| commit | 7cf8df55970b0c2a44bae5c56c6a74dfb1ccfe08 (patch) | |
| tree | 25ec760c1849b50481bec3545c85bf48c47d094c | |
| parent | 1cfd12d618d8f4f38d0dc728e49446a3ffd2d923 (diff) | |
| parent | ebb6f5eae6b37b0202eff325b05932f0b1c28944 (diff) | |
| download | php-git-7cf8df55970b0c2a44bae5c56c6a74dfb1ccfe08.tar.gz | |
Merge branch 'master' of git.php.net:/php-src
| -rw-r--r-- | TSRM/tsrm_win32.c | 2 | ||||
| -rw-r--r-- | ext/session/session.c | 3 | ||||
| -rw-r--r-- | ext/session/tests/session_decode_error2.phpt | 78 | ||||
| -rw-r--r-- | main/SAPI.c | 14 | ||||
| -rw-r--r-- | main/streams/plain_wrapper.c | 6 | 
5 files changed, 51 insertions, 52 deletions
| diff --git a/TSRM/tsrm_win32.c b/TSRM/tsrm_win32.c index e596741680..7bafd2b7b1 100644 --- a/TSRM/tsrm_win32.c +++ b/TSRM/tsrm_win32.c @@ -49,7 +49,7 @@ TSRMLS_CACHE_UPDATE();  	globals->shm	 = NULL;  	globals->process_size = 0;  	globals->shm_size	  = 0; -	globals->comspec = _strdup((GetVersion()<0x80000000)?"cmd.exe":"command.com"); +	globals->comspec = _strdup("cmd.exe");  	/* Set it to INVALID_HANDLE_VALUE  	 * It will be initialized correctly in tsrm_win32_access or set to diff --git a/ext/session/session.c b/ext/session/session.c index 06c6de40e4..46b817be28 100644 --- a/ext/session/session.c +++ b/ext/session/session.c @@ -942,7 +942,7 @@ PS_SERIALIZER_DECODE_FUNC(php_binary) /* {{{ */  		if ((tmp = zend_hash_find(&EG(symbol_table), name))) {  			if ((Z_TYPE_P(tmp) == IS_ARRAY && Z_ARRVAL_P(tmp) == &EG(symbol_table)) || tmp == &PS(http_session_vars)) { -				efree(name); +				zend_string_release(name);  				continue;  			}  		} @@ -954,6 +954,7 @@ PS_SERIALIZER_DECODE_FUNC(php_binary) /* {{{ */  				var_replace(&var_hash, ¤t, zv);  			} else {  				zval_ptr_dtor(¤t); +				zend_string_release(name);  				PHP_VAR_UNSERIALIZE_DESTROY(var_hash);  				return FAILURE;  			} diff --git a/ext/session/tests/session_decode_error2.phpt b/ext/session/tests/session_decode_error2.phpt index 30be58765f..37841deed8 100644 --- a/ext/session/tests/session_decode_error2.phpt +++ b/ext/session/tests/session_decode_error2.phpt @@ -55,210 +55,210 @@ array(0) {  -- Iteration 4 -- -Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s/session_decode_error2.php on line %d +Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s%esession_decode_error2.php on line %d  bool(false)  array(0) {  }  -- Iteration 5 -- -Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s/session_decode_error2.php on line %d +Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s%esession_decode_error2.php on line %d  bool(false)  array(0) {  }  -- Iteration 6 -- -Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s/session_decode_error2.php on line %d +Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s%esession_decode_error2.php on line %d  bool(false)  array(0) {  }  -- Iteration 7 -- -Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s/session_decode_error2.php on line %d +Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s%esession_decode_error2.php on line %d  bool(false)  array(0) {  }  -- Iteration 8 -- -Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s/session_decode_error2.php on line %d +Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s%esession_decode_error2.php on line %d  bool(false)  array(0) {  }  -- Iteration 9 -- -Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s/session_decode_error2.php on line %d +Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s%esession_decode_error2.php on line %d  bool(false)  array(0) {  }  -- Iteration 10 -- -Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s/session_decode_error2.php on line %d +Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s%esession_decode_error2.php on line %d  bool(false)  array(0) {  }  -- Iteration 11 -- -Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s/session_decode_error2.php on line %d +Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s%esession_decode_error2.php on line %d  bool(false)  array(0) {  }  -- Iteration 12 -- -Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s/session_decode_error2.php on line %d +Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s%esession_decode_error2.php on line %d  bool(false)  array(0) {  }  -- Iteration 13 -- -Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s/session_decode_error2.php on line %d +Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s%esession_decode_error2.php on line %d  bool(false)  array(0) {  }  -- Iteration 14 -- -Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s/session_decode_error2.php on line %d +Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s%esession_decode_error2.php on line %d  bool(false)  array(0) {  }  -- Iteration 15 -- -Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s/session_decode_error2.php on line %d +Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s%esession_decode_error2.php on line %d  bool(false)  array(0) {  }  -- Iteration 16 -- -Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s/session_decode_error2.php on line %d +Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s%esession_decode_error2.php on line %d  bool(false)  array(0) {  }  -- Iteration 17 -- -Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s/session_decode_error2.php on line %d +Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s%esession_decode_error2.php on line %d  bool(false)  array(0) {  }  -- Iteration 18 -- -Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s/session_decode_error2.php on line %d +Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s%esession_decode_error2.php on line %d  bool(false)  array(0) {  }  -- Iteration 19 -- -Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s/session_decode_error2.php on line %d +Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s%esession_decode_error2.php on line %d  bool(false)  array(0) {  }  -- Iteration 20 -- -Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s/session_decode_error2.php on line %d +Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s%esession_decode_error2.php on line %d  bool(false)  array(0) {  }  -- Iteration 21 -- -Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s/session_decode_error2.php on line %d +Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s%esession_decode_error2.php on line %d  bool(false)  array(0) {  }  -- Iteration 22 -- -Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s/session_decode_error2.php on line %d +Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s%esession_decode_error2.php on line %d  bool(false)  array(0) {  }  -- Iteration 23 -- -Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s/session_decode_error2.php on line %d +Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s%esession_decode_error2.php on line %d  bool(false)  array(0) {  }  -- Iteration 24 -- -Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s/session_decode_error2.php on line %d +Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s%esession_decode_error2.php on line %d  bool(false)  array(0) {  }  -- Iteration 25 -- -Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s/session_decode_error2.php on line %d +Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s%esession_decode_error2.php on line %d  bool(false)  array(0) {  }  -- Iteration 26 -- -Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s/session_decode_error2.php on line %d +Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s%esession_decode_error2.php on line %d  bool(false)  array(0) {  }  -- Iteration 27 -- -Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s/session_decode_error2.php on line %d +Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s%esession_decode_error2.php on line %d  bool(false)  array(0) {  }  -- Iteration 28 -- -Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s/session_decode_error2.php on line %d +Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s%esession_decode_error2.php on line %d  bool(false)  array(0) {  }  -- Iteration 29 -- -Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s/session_decode_error2.php on line %d +Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s%esession_decode_error2.php on line %d  bool(false)  array(0) {  }  -- Iteration 30 -- -Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s/session_decode_error2.php on line %d +Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s%esession_decode_error2.php on line %d  bool(false)  array(0) {  }  -- Iteration 31 -- -Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s/session_decode_error2.php on line %d +Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s%esession_decode_error2.php on line %d  bool(false)  array(0) {  }  -- Iteration 32 -- -Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s/session_decode_error2.php on line %d +Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s%esession_decode_error2.php on line %d  bool(false)  array(0) {  }  -- Iteration 33 -- -Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s/session_decode_error2.php on line %d +Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s%esession_decode_error2.php on line %d  bool(false)  array(0) {  } @@ -335,28 +335,28 @@ array(1) {  -- Iteration 39 -- -Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s/session_decode_error2.php on line %d +Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s%esession_decode_error2.php on line %d  bool(false)  array(0) {  }  -- Iteration 40 -- -Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s/session_decode_error2.php on line %d +Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s%esession_decode_error2.php on line %d  bool(false)  array(0) {  }  -- Iteration 41 -- -Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s/session_decode_error2.php on line %d +Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s%esession_decode_error2.php on line %d  bool(false)  array(0) {  }  -- Iteration 42 -- -Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s/session_decode_error2.php on line %d +Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s%esession_decode_error2.php on line %d  bool(false)  array(0) {  } @@ -478,32 +478,32 @@ array(2) {  -- Iteration 48 -- -Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s/session_decode_error2.php on line %d +Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s%esession_decode_error2.php on line %d  bool(false)  array(0) {  }  -- Iteration 49 -- -Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s/session_decode_error2.php on line %d +Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s%esession_decode_error2.php on line %d  bool(false)  array(0) {  }  -- Iteration 50 -- -Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s/session_decode_error2.php on line %d +Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s%esession_decode_error2.php on line %d  bool(false)  array(0) {  }  -- Iteration 51 -- -Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s/session_decode_error2.php on line %d +Warning: session_decode(): Failed to decode session object. Session has been destroyed in %s%esession_decode_error2.php on line %d  bool(false)  array(0) {  } -Warning: session_destroy(): Trying to destroy uninitialized session in %s/session_decode_error2.php on line %d +Warning: session_destroy(): Trying to destroy uninitialized session in %s%esession_decode_error2.php on line %d  bool(false)  Done diff --git a/main/SAPI.c b/main/SAPI.c index 1709ab1012..c0ea144015 100644 --- a/main/SAPI.c +++ b/main/SAPI.c @@ -43,12 +43,6 @@  #include "rfc1867.h" -#ifdef PHP_WIN32 -#define STRCASECMP stricmp -#else -#define STRCASECMP strcasecmp -#endif -  #include "php_content_types.h"  #ifdef ZTS @@ -778,7 +772,7 @@ SAPI_API int sapi_header_op(sapi_header_op_enum op, void *arg)  		colon_offset = strchr(header_line, ':');  		if (colon_offset) {  			*colon_offset = 0; -			if (!STRCASECMP(header_line, "Content-Type")) { +			if (!strcasecmp(header_line, "Content-Type")) {  				char *ptr = colon_offset+1, *mimetype = NULL, *newheader;  				size_t len = header_line_len - (ptr - header_line), newlen;  				while (*ptr == ' ') { @@ -810,7 +804,7 @@ SAPI_API int sapi_header_op(sapi_header_op_enum op, void *arg)  				}  				efree(mimetype);  				SG(sapi_headers).send_default_content_type = 0; -			} else if (!STRCASECMP(header_line, "Content-Length")) { +			} else if (!strcasecmp(header_line, "Content-Length")) {  				/* Script is setting Content-length. The script cannot reasonably  				 * know the size of the message body after compression, so it's best  				 * do disable compression altogether. This contributes to making scripts @@ -820,7 +814,7 @@ SAPI_API int sapi_header_op(sapi_header_op_enum op, void *arg)  				zend_alter_ini_entry_chars(key,  					"0", sizeof("0") - 1, PHP_INI_USER, PHP_INI_STAGE_RUNTIME);  				zend_string_release(key); -			} else if (!STRCASECMP(header_line, "Location")) { +			} else if (!strcasecmp(header_line, "Location")) {  				if ((SG(sapi_headers).http_response_code < 300 ||  					SG(sapi_headers).http_response_code > 399) &&  					SG(sapi_headers).http_response_code != 201) { @@ -836,7 +830,7 @@ SAPI_API int sapi_header_op(sapi_header_op_enum op, void *arg)  						sapi_update_response_code(302);  					}  				} -			} else if (!STRCASECMP(header_line, "WWW-Authenticate")) { /* HTTP Authentication */ +			} else if (!strcasecmp(header_line, "WWW-Authenticate")) { /* HTTP Authentication */  				sapi_update_response_code(401); /* authentication-required */  			}  			if (sapi_header.header==header_line) { diff --git a/main/streams/plain_wrapper.c b/main/streams/plain_wrapper.c index 101fe4aa53..066f7789a7 100644 --- a/main/streams/plain_wrapper.c +++ b/main/streams/plain_wrapper.c @@ -336,7 +336,11 @@ static size_t php_stdiop_write(php_stream *stream, const char *buf, size_t count  	if (data->fd >= 0) {  #ifdef PHP_WIN32 -		int bytes_written = write(data->fd, buf, (unsigned int)count); +		int bytes_written; +		if (ZEND_SIZE_T_UINT_OVFL(count)) { +			count = UINT_MAX; +		} +		bytes_written = _write(data->fd, buf, (unsigned int)count);  #else  		int bytes_written = write(data->fd, buf, count);  #endif | 
