commit 7acbbb465c423689ae6ca25b98bae46addfc36cf
parent ec00668fa3d4bed496b51bf19bb893b3d5c3c754
Author: Christian Grothoff <christian@grothoff.org>
Date: Sun, 22 Aug 2010 19:29:26 +0000
nicer
Diffstat:
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);
+ }
}