summaryrefslogtreecommitdiffstats
path: root/pw/pw_user.c
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
commit91aa622155b3b4b793a0a2fe27c7ce6e66c2dfd4 (patch)
treea776944c64179d6456e370b61223aa1f886d1e9b /pw/pw_user.c
parent5a8ca2aae854fec5fb750b42e5e0bd974254c3ac (diff)
downloadpw-darwin-91aa622155b3b4b793a0a2fe27c7ce6e66c2dfd4.tar.gz
pw-darwin-91aa622155b3b4b793a0a2fe27c7ce6e66c2dfd4.tar.zst
pw-darwin-91aa622155b3b4b793a0a2fe27c7ce6e66c2dfd4.zip
Replace malloc(3) + strcpy(3) + strcat(3) by asprintf(3)
Diffstat (limited to 'pw/pw_user.c')
-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) {