diff options
author | Ilia Alshanetsky <iliaa@php.net> | 2005-07-12 16:53:30 +0000 |
---|---|---|
committer | Ilia Alshanetsky <iliaa@php.net> | 2005-07-12 16:53:30 +0000 |
commit | 0131b2b032501017e9a9ad314bdf77c587a7afd0 (patch) | |
tree | 988cac89ba69b29d89f58ac54abc365eddf9e99e /main/main.c | |
parent | 9aabcf7016a544de1fcabadf912ace828108819d (diff) | |
download | php-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.c | 8 |
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; } /* }}} */ |