]> granicus.if.org Git - php/commitdiff
Fix more crashes related to this switch to z_value
authorRasmus Lerdorf <rasmus@php.net>
Sat, 21 Jul 2001 00:14:14 +0000 (00:14 +0000)
committerRasmus Lerdorf <rasmus@php.net>
Sat, 21 Jul 2001 00:14:14 +0000 (00:14 +0000)
ext/standard/head.c

index a269c97f02581ec2cb53a93f8e6c21ceb463d3be..cb0bba7128596d6bc561120df1fc472010229f24 100644 (file)
@@ -132,7 +132,7 @@ PHP_FUNCTION(setcookie)
                len += Z_STRLEN_PP(z_domain);
        }
        cookie = emalloc(len + 100);
-       if (!Z_STRVAL_PP(z_value) || !Z_STRVAL_PP(z_value)[0]) {
+       if (z_value && (!Z_STRVAL_PP(z_value) || (Z_STRVAL_PP(z_value) && !Z_STRVAL_PP(z_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
@@ -144,7 +144,7 @@ PHP_FUNCTION(setcookie)
                efree(dt);
        } else {
                /* FIXME: XXX: this is not binary data safe */
-               sprintf(cookie, "Set-Cookie: %s=%s", Z_STRVAL_PP(z_name), Z_STRVAL_PP(z_value) ? encoded_value : "");
+               sprintf(cookie, "Set-Cookie: %s=%s", Z_STRVAL_PP(z_name), (z_value && Z_STRVAL_PP(z_value)) ? encoded_value : "");
                if (expires > 0) {
                        strcat(cookie, "; expires=");
                        dt = php_std_date(expires);