diff options
author | Felix Fietkau <nbd@openwrt.org> | 2012-12-31 15:28:17 +0100 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2012-12-31 15:28:17 +0100 |
commit | a733c4983025f9cbd1eb124a9926d115e4bf0457 (patch) | |
tree | f21dcded49622c22b49520c55ef47482899c27bf | |
parent | 88dc4e3e572b015e9240d22de2a07f3ca6c39e00 (diff) |
use the new calloc_a function from libubox
-rw-r--r-- | auth.c | 13 | ||||
-rw-r--r-- | uhttpd.h | 7 |
2 files changed, 13 insertions, 7 deletions
@@ -26,6 +26,7 @@ void uh_auth_add(const char *path, const char *user, const char *pass) struct auth_realm *new = NULL; struct passwd *pwd; const char *new_pass = NULL; + char *dest_path, *dest_user, *dest_pass; #ifdef HAVE_SHADOW struct spwd *spwd; @@ -52,12 +53,16 @@ void uh_auth_add(const char *path, const char *user, const char *pass) if (!new_pass || !new_pass[0]) return; - new = calloc(1, sizeof(*new)); + new = calloc_a(sizeof(*new), + &dest_path, strlen(path) + 1, + &dest_user, strlen(user) + 1, + &dest_pass, strlen(new_pass) + 1); + if (!new) return; - snprintf(new->path, sizeof(new->path), "%s", path); - snprintf(new->user, sizeof(new->user), "%s", user); - snprintf(new->pass, sizeof(new->user), "%s", new_pass); + new->path = strcpy(dest_path, path); + new->user = strcpy(dest_user, user); + new->pass = strcpy(dest_pass, new_pass); list_add(&new->list, &auth_realms); } @@ -28,6 +28,7 @@ #include <libubox/uloop.h> #include <libubox/ustream.h> #include <libubox/blob.h> +#include <libubox/utils.h> #include "utils.h" @@ -52,9 +53,9 @@ struct config { struct auth_realm { struct list_head list; - char path[PATH_MAX]; - char user[32]; - char pass[128]; + char *path; + char *user; + char *pass; }; enum http_method { |