summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ext/standard/head.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/ext/standard/head.c b/ext/standard/head.c
index 81236de737..9279bf2b01 100644
--- a/ext/standard/head.c
+++ b/ext/standard/head.c
@@ -69,6 +69,7 @@ PHPAPI int php_setcookie(char *name, int name_len, char *value, int value_len, t
time_t t;
char *dt;
sapi_header_line ctr = {0};
+ int result;
len += name_len;
if (value) {
@@ -124,7 +125,11 @@ PHPAPI int php_setcookie(char *name, int name_len, char *value, int value_len, t
ctr.line = cookie;
ctr.line_len = strlen(cookie);
- return sapi_header_op(SAPI_HEADER_ADD, &ctr TSRMLS_CC);
+ result = sapi_header_op(SAPI_HEADER_ADD, &ctr TSRMLS_CC);
+ if (result == FAILURE) {
+ efree(cookie);
+ }
+ return result;
}