summaryrefslogtreecommitdiff
path: root/win32/sendmail.c
diff options
context:
space:
mode:
authorStanislav Malyshev <stas@php.net>2019-04-29 22:10:21 -0700
committerStanislav Malyshev <stas@php.net>2019-04-29 22:10:21 -0700
commit97c728116cbca626b6c2a1d8fe11d493f57f1f97 (patch)
tree03f1e09062c21809b01c40733f8b7ba13985dde7 /win32/sendmail.c
parent3d2a6d9bedcadceda9b58deaae774e8551ff294e (diff)
parentf7d59844e159e2433c0d020b545db16ac46717d0 (diff)
downloadphp-git-97c728116cbca626b6c2a1d8fe11d493f57f1f97.tar.gz
Merge branch 'PHP-7.4'
* PHP-7.4: Fix #77821: Potential heap corruption in TSendMail()
Diffstat (limited to 'win32/sendmail.c')
-rw-r--r--win32/sendmail.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/win32/sendmail.c b/win32/sendmail.c
index fc901308ba..6a685ee477 100644
--- a/win32/sendmail.c
+++ b/win32/sendmail.c
@@ -252,8 +252,9 @@ PHPAPI int TSendMail(char *host, int *error, char **error_message,
}
if (!found) {
- if (headers_lc) {
- zend_string_free(headers_lc);
+ if (headers) {
+ zend_string_release(headers_trim);
+ zend_string_release(headers_lc);
}
*error = W32_SM_SENDMAIL_FROM_NOT_SET;
return FAILURE;
@@ -267,8 +268,8 @@ PHPAPI int TSendMail(char *host, int *error, char **error_message,
efree(RPath);
}
if (headers) {
- zend_string_free(headers_trim);
- zend_string_free(headers_lc);
+ zend_string_release(headers_trim);
+ zend_string_release(headers_lc);
}
/* 128 is safe here, the specifier in snprintf isn't longer than that */
*error_message = ecalloc(1, HOST_NAME_LEN + 128);
@@ -284,8 +285,8 @@ PHPAPI int TSendMail(char *host, int *error, char **error_message,
efree(RPath);
}
if (headers) {
- zend_string_free(headers_trim);
- zend_string_free(headers_lc);
+ zend_string_release(headers_trim);
+ zend_string_release(headers_lc);
}
if (ret != SUCCESS) {
*error = ret;