From: Christoph M. Becker Date: Mon, 24 Aug 2015 21:03:50 +0000 (+0200) Subject: Fix #67131: setcookie() conditional for empty values not met X-Git-Tag: php-5.6.14RC1~37 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=fc203fa37eb0454c94e7e30f3b4e5fc81b699699;p=php Fix #67131: setcookie() conditional for empty values not met PHP applies a workaround for old MSIE where setting an empty cookie value would not delete the cookie. This workaround is only triggered if an empty string (or a value that converts to an empty string) is actually given as $value parameter of setcookie. If the $value parameter is omitted, an empty cookie value is sent. This commit fixes the inconsistent behavior. --- diff --git a/ext/standard/head.c b/ext/standard/head.c index f66c60437b..56a48a0be3 100644 --- a/ext/standard/head.c +++ b/ext/standard/head.c @@ -110,7 +110,7 @@ PHPAPI int php_setcookie(char *name, int name_len, char *value, int value_len, t cookie = emalloc(len + 100); - if (value && value_len == 0) { + if (value == NULL || value_len == 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 bf04ec78de..f63c6ec815 100644 --- a/ext/standard/tests/network/setcookie.phpt +++ b/ext/standard/tests/network/setcookie.phpt @@ -6,6 +6,7 @@ date.timezone=UTC --FILE-- --EXPECTHEADERS-- --EXPECT--