libmicrohttpd

HTTP/1.x server C library (MHD 1.x, stable)
Log | Files | Refs | Submodules | README | LICENSE

commit 7acbbb465c423689ae6ca25b98bae46addfc36cf
parent ec00668fa3d4bed496b51bf19bb893b3d5c3c754
Author: Christian Grothoff <christian@grothoff.org>
Date:   Sun, 22 Aug 2010 19:29:26 +0000

nicer

Diffstat:
Msrc/daemon/digestauth.c | 35++++++++++-------------------------
1 file changed, 10 insertions(+), 25 deletions(-)

diff --git a/src/daemon/digestauth.c b/src/daemon/digestauth.c @@ -227,9 +227,6 @@ char * MHD_digest_auth_get_username(struct MHD_Connection *connection) { size_t len; - size_t userlen; - char *buffer; - char *username; const char *user; const char *header; @@ -241,29 +238,17 @@ MHD_digest_auth_get_username(struct MHD_Connection *connection) if (strncmp(header, _BASE, strlen(_BASE)) != 0) return NULL; len = strlen(header) - strlen(_BASE) + 1; - buffer = malloc(len); - if (buffer == NULL) - return NULL; - - strncpy(buffer, header + strlen(_BASE), len); - - user = lookup_sub_value(buffer, len, "username"); - - if (user) - { - userlen = strlen(user) + 1; - username = malloc(userlen); - - if (username != NULL) - { - strncpy(username, user, userlen); - free(buffer); - return username; - } - } + { + char buffer[len]; - free(buffer); - return NULL; + memcpy (buffer, + header + strlen(_BASE), + len); + user = lookup_sub_value(buffer, len, "username"); + if (NULL == user) + return NULL; + return strdup (user); + } }