summaryrefslogtreecommitdiff
path: root/auth.c
diff options
context:
space:
mode:
authorFelix Fietkau <nbd@openwrt.org>2012-12-31 15:28:17 +0100
committerFelix Fietkau <nbd@openwrt.org>2012-12-31 15:28:17 +0100
commita733c4983025f9cbd1eb124a9926d115e4bf0457 (patch)
treef21dcded49622c22b49520c55ef47482899c27bf /auth.c
parent88dc4e3e572b015e9240d22de2a07f3ca6c39e00 (diff)
use the new calloc_a function from libubox
Diffstat (limited to 'auth.c')
-rw-r--r--auth.c13
1 files changed, 9 insertions, 4 deletions
diff --git a/auth.c b/auth.c
index da7263f..05bec66 100644
--- a/auth.c
+++ b/auth.c
@@ -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);
}