summaryrefslogtreecommitdiff
path: root/main/main.c
diff options
context:
space:
mode:
authorIlia Alshanetsky <iliaa@php.net>2005-07-12 16:53:30 +0000
committerIlia Alshanetsky <iliaa@php.net>2005-07-12 16:53:30 +0000
commit0131b2b032501017e9a9ad314bdf77c587a7afd0 (patch)
tree988cac89ba69b29d89f58ac54abc365eddf9e99e /main/main.c
parent9aabcf7016a544de1fcabadf912ace828108819d (diff)
downloadphp-git-0131b2b032501017e9a9ad314bdf77c587a7afd0.tar.gz
Fixed double-free in the digest authentication handling.
# Found and Reported by Stefan Esser
Diffstat (limited to 'main/main.c')
-rw-r--r--main/main.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/main/main.c b/main/main.c
index ef336e03c0..6a792e8bff 100644
--- a/main/main.c
+++ b/main/main.c
@@ -1767,13 +1767,19 @@ PHPAPI int php_handle_auth_data(const char *auth TSRMLS_DC)
if (ret == -1) {
SG(request_info).auth_user = SG(request_info).auth_password = NULL;
+ } else {
+ SG(request_info).auth_digest = NULL;
}
- if (auth && auth[0] != '\0' && strncmp(auth, "Digest ", 7) == 0) {
+ if (ret == -1 && auth && auth[0] != '\0' && strncmp(auth, "Digest ", 7) == 0) {
SG(request_info).auth_digest = estrdup(auth);
ret = 0;
}
+ if (ret == -1) {
+ SG(request_info).auth_digest = NULL;
+ }
+
return ret;
}
/* }}} */