diff options
author | Mike Barcroft <mike@FreeBSD.org> | 2001-07-26 23:27:10 +0000 |
---|---|---|
committer | Mike Barcroft <mike@FreeBSD.org> | 2001-07-26 23:27:10 +0000 |
commit | 2e7897495782bf04835cf18c52dbcfec3fcfe61e (patch) | |
tree | 84cf1d2449e5e61af0b1267bb9ce8b2143fbc334 /chpass/edit.c | |
parent | ff4aa702015e5d6b3863c90eba93e78bb2e26a23 (diff) | |
download | pw-darwin-2e7897495782bf04835cf18c52dbcfec3fcfe61e.tar.gz pw-darwin-2e7897495782bf04835cf18c52dbcfec3fcfe61e.tar.zst pw-darwin-2e7897495782bf04835cf18c52dbcfec3fcfe61e.zip |
Prevent chpass(1) from writing -1 in the UID or GID fields
in the password file by properly casting integers.
PR: 27757
Reviewed by: des
Approved by: des
MFC after: 4 days
Diffstat (limited to 'chpass/edit.c')
-rw-r--r-- | chpass/edit.c | 12 |
1 files changed, 7 insertions, 5 deletions
diff --git a/chpass/edit.c b/chpass/edit.c index a5d3d5d..849d5d9 100644 --- a/chpass/edit.c +++ b/chpass/edit.c @@ -115,8 +115,9 @@ display(fd, pw) #endif /* YP */ (void)fprintf(fp, "Login: %s\n", pw->pw_name); (void)fprintf(fp, "Password: %s\n", pw->pw_passwd); - (void)fprintf(fp, "Uid [#]: %d\n", pw->pw_uid); - (void)fprintf(fp, "Gid [# or name]: %d\n", pw->pw_gid); + (void)fprintf(fp, "Uid [#]: %lu\n", (unsigned long)pw->pw_uid); + (void)fprintf(fp, "Gid [# or name]: %lu\n", + (unsigned long)pw->pw_gid); (void)fprintf(fp, "Change [month day year]: %s\n", ttoa(pw->pw_change)); (void)fprintf(fp, "Expire [month day year]: %s\n", @@ -255,9 +256,10 @@ bad: (void)fclose(fp); pw->pw_gecos[len - 1] = '\0'; if (snprintf(buf, sizeof(buf), - "%s:%s:%d:%d:%s:%ld:%ld:%s:%s:%s", - pw->pw_name, pw->pw_passwd, pw->pw_uid, pw->pw_gid, pw->pw_class, - pw->pw_change, pw->pw_expire, pw->pw_gecos, pw->pw_dir, + "%s:%s:%lu:%lu:%s:%ld:%ld:%s:%s:%s", + pw->pw_name, pw->pw_passwd, (unsigned long)pw->pw_uid, + (unsigned long)pw->pw_gid, pw->pw_class, (long)pw->pw_change, + (long)pw->pw_expire, pw->pw_gecos, pw->pw_dir, pw->pw_shell) >= sizeof(buf)) { warnx("entries too long"); free(p); |