if (domain) {
len += domain_len;
}
+
+ cookie = emalloc(len + 100);
+
if (value && value_len == 0) {
/*
* MSIE doesn't delete a cookie when you set it to a null value
*/
time_t t = time(NULL) - 31536001;
dt = php_format_date("D, d-M-Y H:i:s T", sizeof("D, d-M-Y H:i:s T")-1, t, 0 TSRMLS_CC);
- spprintf(&cookie, 0, "Set-Cookie: %s=deleted; expires=%s", name, dt);
+ snprintf(cookie, len + 100, "Set-Cookie: %s=deleted; expires=%s", name, dt);
efree(dt);
} else {
- spprintf(&cookie, 0, "Set-Cookie: %s=%s", name, value ? encoded_value : "");
+ snprintf(cookie, len + 100, "Set-Cookie: %s=%s", name, value ? encoded_value : "");
if (expires > 0) {
- strcat(cookie, "; expires=");
+ 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);
- strcat(cookie, dt);
+ strlcat(cookie, dt, len + 100);
efree(dt);
}
}
}
if (path && path_len > 0) {
- strcat(cookie, "; path=");
- strcat(cookie, path);
+ strlcat(cookie, "; path=", len + 100);
+ strlcat(cookie, path, len + 100);
}
if (domain && domain_len > 0) {
- strcat(cookie, "; domain=");
- strcat(cookie, domain);
+ strlcat(cookie, "; domain=", len + 100);
+ strlcat(cookie, domain, len + 100);
}
if (secure) {
- strcat(cookie, "; secure");
+ strlcat(cookie, "; secure", len + 100);
}
if (httponly) {
- strcat(cookie, "; httponly");
+ strlcat(cookie, "; httponly", len + 100);
}
ctr.line = cookie;