summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBaptiste Daroussin <bapt@FreeBSD.org>2015-05-09 19:12:16 +0000
committerBaptiste Daroussin <bapt@FreeBSD.org>2015-05-09 19:12:16 +0000
commit8ed7622e3f439163a5b57edaaaedfc5a44cc0373 (patch)
tree2378879795e08e9390468b4641229abf2d672548
parentc40fda9eafe03e89a520e779c3640d53528ff0d5 (diff)
downloadpw-darwin-8ed7622e3f439163a5b57edaaaedfc5a44cc0373.tar.gz
pw-darwin-8ed7622e3f439163a5b57edaaaedfc5a44cc0373.tar.zst
pw-darwin-8ed7622e3f439163a5b57edaaaedfc5a44cc0373.zip
Replace malloc(3) + strcpy(3) + strcat(3) by asprintf(3)
-rw-r--r--pw/pw_user.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/pw/pw_user.c b/pw/pw_user.c
index 0f7dd26..dc9a2d8 100644
--- a/pw/pw_user.c
+++ b/pw/pw_user.c
@@ -363,11 +363,9 @@ pw_user(struct userconf * cnf, int mode, struct cargs * args)
if (mode == M_LOCK) {
if (strncmp(pwd->pw_passwd, locked_str, sizeof(locked_str)-1) == 0)
errx(EX_DATAERR, "user '%s' is already locked", pwd->pw_name);
- passtmp = malloc(strlen(pwd->pw_passwd) + sizeof(locked_str));
+ asprintf(&passtmp, "%s%s", locked_str, pwd->pw_passwd);
if (passtmp == NULL) /* disaster */
errx(EX_UNAVAILABLE, "out of memory");
- strcpy(passtmp, locked_str);
- strcat(passtmp, pwd->pw_passwd);
pwd->pw_passwd = passtmp;
edited = 1;
} else if (mode == M_UNLOCK) {