Browse Source

use the new calloc_a function from libubox

Felix Fietkau 11 years ago
parent
commit
a733c49830
2 changed files with 13 additions and 7 deletions
  1. 9 4
      auth.c
  2. 4 3
      uhttpd.h

+ 9 - 4
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);
 }

+ 4 - 3
uhttpd.h

@@ -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 {