]> granicus.if.org Git - php/commitdiff
Fixed wrong data type (all tests passed in ext/network now)
authorXinchen Hui <laruence@gmail.com>
Mon, 3 Mar 2014 10:27:45 +0000 (18:27 +0800)
committerXinchen Hui <laruence@gmail.com>
Mon, 3 Mar 2014 10:27:45 +0000 (18:27 +0800)
ext/standard/head.c

index 04a3c894605c15f8f87e3c2fb98a83c1cb2968fd..120a0615e88b66d3d200368111ac7378d52113af 100644 (file)
@@ -77,7 +77,7 @@ PHPAPI int php_setcookie(char *name, int name_len, char *value, int value_len, t
 {
        char *cookie;
        int len=sizeof("Set-Cookie: ");
-       char *dt;
+       zend_string *dt;
        sapi_header_line ctr = {0};
        int result;
        zend_string *encoded_value = NULL;
@@ -117,8 +117,8 @@ PHPAPI int php_setcookie(char *name, int name_len, char *value, int value_len, t
                 * pick an expiry date in the past
                 */
                dt = php_format_date("D, d-M-Y H:i:s T", sizeof("D, d-M-Y H:i:s T")-1, 1, 0 TSRMLS_CC);
-               snprintf(cookie, len + 100, "Set-Cookie: %s=deleted; expires=%s; Max-Age=0", name, dt);
-               efree(dt);
+               snprintf(cookie, len + 100, "Set-Cookie: %s=deleted; expires=%s; Max-Age=0", name, dt->val);
+               STR_FREE(dt);
        } else {
                snprintf(cookie, len + 100, "Set-Cookie: %s=%s", name, value ? encoded_value->val : "");
                if (expires > 0) {
@@ -127,16 +127,16 @@ PHPAPI int php_setcookie(char *name, int name_len, char *value, int value_len, t
                        strlcat(cookie, "; expires=", len + 100);
                        dt = php_format_date("D, d-M-Y H:i:s T", sizeof("D, d-M-Y H:i:s T")-1, expires, 0 TSRMLS_CC);
                        /* check to make sure that the year does not exceed 4 digits in length */
-                       p = zend_memrchr(dt, '-', strlen(dt));
+                       p = zend_memrchr(dt->val, '-', dt->len);
                        if (!p || *(p + 5) != ' ') {
-                               efree(dt);
+                               STR_FREE(dt);
                                efree(cookie);
                                STR_FREE(encoded_value);
                                zend_error(E_WARNING, "Expiry date cannot have a year greater than 9999");
                                return FAILURE;
                        }
-                       strlcat(cookie, dt, len + 100);
-                       efree(dt);
+                       strlcat(cookie, dt->val, len + 100);
+                       STR_FREE(dt);
 
                        snprintf(tsdelta, sizeof(tsdelta), "%li", (long) difftime(expires, time(NULL)));
                        strlcat(cookie, "; Max-Age=", len + 100);