summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristoph M. Becker <cmb@php.net>2015-08-24 23:11:03 +0200
committerChristoph M. Becker <cmb@php.net>2015-08-24 23:11:03 +0200
commit405f8b5c91fe8431fdd2547ce9b7ffb9662e848a (patch)
tree347fded17dcd1cf3adc5c8dfa4a49d14201a8940
parentf9f568aa1e1564e068f2319af34d5834b3f3da09 (diff)
parente5adf2b427915ff070ddcba24d7c4ed3014743e9 (diff)
downloadphp-git-405f8b5c91fe8431fdd2547ce9b7ffb9662e848a.tar.gz
Merge branch 'PHP-5.6'
* PHP-5.6: Fix #67131: setcookie() conditional for empty values not met Resolved conflicts: ext/standard/head.c
-rw-r--r--ext/standard/head.c2
-rw-r--r--ext/standard/tests/network/setcookie.phpt5
2 files changed, 5 insertions, 2 deletions
diff --git a/ext/standard/head.c b/ext/standard/head.c
index 215089b8a1..c9f81b4f5a 100644
--- a/ext/standard/head.c
+++ b/ext/standard/head.c
@@ -120,7 +120,7 @@ PHPAPI int php_setcookie(zend_string *name, zend_string *value, time_t expires,
cookie = emalloc(len + 100);
- if (value && ZSTR_LEN(value) == 0) {
+ if (value == NULL || ZSTR_LEN(value) == 0) {
/*
* MSIE doesn't delete a cookie when you set it to a null value
* so in order to force cookies to be deleted, even on MSIE, we
diff --git a/ext/standard/tests/network/setcookie.phpt b/ext/standard/tests/network/setcookie.phpt
index 3b8e551834..68c929997d 100644
--- a/ext/standard/tests/network/setcookie.phpt
+++ b/ext/standard/tests/network/setcookie.phpt
@@ -6,6 +6,7 @@ date.timezone=UTC
--FILE--
<?php
setcookie('name');
+setcookie('name', '');
setcookie('name', 'value');
setcookie('name', 'space value');
setcookie('name', 'value', 0);
@@ -19,7 +20,8 @@ setcookie('name', 'value', 0, '', '', FALSE, TRUE);
$expected = array(
- 'Set-Cookie: name=',
+ 'Set-Cookie: name=deleted; expires='.date('D, d-M-Y H:i:s', 1).' GMT; Max-Age=0',
+ 'Set-Cookie: name=deleted; expires='.date('D, d-M-Y H:i:s', 1).' GMT; Max-Age=0',
'Set-Cookie: name=value',
'Set-Cookie: name=space+value',
'Set-Cookie: name=value',
@@ -64,6 +66,7 @@ while (next($headers) !== FALSE);
echo ($i === 0)
? 'OK'
: 'A total of '.$i.' errors found.';
+?>
--EXPECTHEADERS--
--EXPECT--