summaryrefslogtreecommitdiff
path: root/usr.sbin/user/user.c
AgeCommit message (Collapse)Author
2007-08-02catch a few truncation cases instead of silently ignoring them. one of theTheo de Raadt
fixes is from pr 5554. ok millert, ray
2007-04-05remove some extra tests, from charles longeauTed Unangst
2007-03-02Check if group exists before checking if group is local.Ray Lai
OK millert@.
2007-03-02Replace regex(3) routines with simple string searching and comparisonRay Lai
routines. OK millert@.
2007-01-12Compare against the username, so listing groups when given a numericOtto Moerbeek
user id to userinfo works. From Alf Schlichting; ok millert@
2006-12-20Fix potential buffer overread in function, even though the currentRay Lai
code cannot overflow. Add error checking to protect future code changes and to provide a better example for plagiarizers. OK millert@.
2005-12-31Make useradd -p slightly less dangerous by overwriting the encryptedTodd C. Miller
password in argv. This doesn't solve the problem; it just reduces the amount of time that encrypted password is available via ps. OK deraadt@ and krw@
2005-08-27change default user shell to ksh as well.Theo de Raadt
spotted by matthieu and miod sorry bill, but you stopped just hacking far too long ago..
2005-07-08Don't mistakenly match groups with partial name matches in "usermod -G".Todd C. Miller
Reported and fix confirmed by Maxim Bourmistrov
2005-04-15fix snprintf return value check. ok otto@ millert@Moritz Jodeit
2005-04-13very unlikely overflow. but sticking to the idiom is important: thereby,Theo de Raadt
example by example, we teach people how to actually use snprintf. because it is clear (especially judging by code coming from netbsd hint hint perhaps if i say it like this they will finally learn) that people are not paying attention, and replacing one security problem with another. in the early days we replaced buffer the typical ANSI-C standardized function buffer overflows (by which I mean strcpy, strcat, and sprintf) with non-overflowing ones -- range checking varients. We knew we were fixing a major problem. The damn overflows. But we did not have time in all cases to handle the next problem we were not handling: string truncation. Now we need to (I hope not slowly) start fixing the string truncations. Anyone going to help?
2004-09-30If the yp marker is in the file, add new users before it. PR 3727.Otto Moerbeek
ok deraadt@ millert@
2004-06-04Clear up some confusion: -e is account expiry flag, -f is passwordOtto Moerbeek
expiry flag. Resolves PR 3792, though not by changing code, but by changing docs, comments and an error message or two. ok jmc@ millert@
2004-05-10Check return value of fclose() calls after writing.Otto Moerbeek
ok deraadt@ tdeval@
2004-05-10when adding a new group to /etc/groups, place it just before the firstTheo de Raadt
+ entry. assistance from tdeval and otto. this is the first half of pr 3727, brendan@cs.uchicago.edu
2004-04-19Don't complain when the /nonexistent homedir does not exist.Todd C. Miller
Based on a patch from Sam Smith. henning@ OK
2004-02-26Avoid using regexp when removing a user from /etc/group entries inTodd C. Miller
userdel since a username may contain regexp special chars. Fix a memory leak on error and chmod before moving the new group file is moved into place instead of after. Saner error messages in rm_user_from_groups() (cut & pastos) OK deraadt@, tdeval@ and otto@; error message fixes courtesy of otto@
2004-01-03Replace bogus use of fgetln() (which doesn't NUL-terminate strings)Todd C. Miller
with fgets() (which does). Using fgetln() doesn't make a huge amount of sense since passwd entries are required to be short and mustn't contain NULs. This also fixes a bus error on sparc64 (caused by passing a pointer to an int when a pointer to size_t was expected) found by pvalchev@. Tested and OK pvalchev@
2003-12-25Fix multi-line stringAlexander Yurchenko
ok otto@
2003-12-24Fix bound checks for gecos field, taking into account it may containOtto Moerbeek
multiple '&'s. Resolves PR 3616. ok deraadt@
2003-06-14For moduser(), only do valid_class() check when F_CLASS is set inTodd C. Miller
up->u_flags. Fixes a coredump when changing/deleting an existing user introduced by my recent commit here.
2003-06-10Check that login class exists before using it; based on a patch fromTodd C. Miller
Peter Werner. Closes PR 2699.
2003-06-10o Check for fwrite() error with != 1, not <= 0 (mostly style)Todd C. Miller
o Correct some error messages o More informative error when reading a line that is > LINE_MAX o When saving password, only alloc space for what is used
2003-06-10Keep a table of password types, and their associated lengths, andTodd C. Miller
check in useradd or usermod whether the given encrypted password has the correct length. Factor out time code into a function, scantime() Perform ctype(3) operations on unsigned chars. From NetBSD (agc)
2003-06-10Use syslog(3) to log new users and groups, deletions of users and groups,Todd C. Miller
and modification of user and group information. Syslog priority is LOG_INFO, facility is LOG_USER (there is no need to do this via LOG_AUTH, since the password and group files are world readable). From NetBSD (agc)
2003-06-10Catch illegal flags and reply with usage; from NetBSD (agc)Todd C. Miller
2003-06-10o rename login variable to login_nameTodd C. Miller
o remove user from supplementary groups when deleting a user and not preserving information. o add some const o check that user/group is local (not YP) before trying to change it. From NetBSD (agc)
2003-06-08user -e and -f now accepts "month day year" (ala chpass(1)) andTodd C. Miller
seconds-since-epoch. From NetBSD (grant).
2003-06-08Add check for group too long and made an invalid group a fatal errorTodd C. Miller
instead of just a warning which is consistent with the way an invalid user is treated.
2003-06-08Use _PW_NAME_LEN not MAXLOGNAME since the latter does not include the NUL.Todd C. Miller
2003-05-13Don't allow usernames to begin with a dash since pwd_mkdb(8)Todd C. Miller
will reject such a name; from Brian Poole
2003-04-03The check for whether or not a group is empty was busted. Closes PR 3178.Todd C. Miller
2002-12-10Add 2 missing pw_abort() calls when pw_mkdb() fails and remove theTodd C. Miller
void cast from pw_abort() since it is already void. From NetBSD via Brian Poole.
2002-11-07Check for non-existent group in groupdel just like userdel; Sebastian StarkTodd C. Miller
2002-11-07Change some err/warn -> errx/warnx. Should maybe do the same forTodd C. Miller
the short write cases.
2002-11-07Allow '$' in a username as long as it is the last character sinceTodd C. Miller
samba wants to create usernames that end in '$'. From Paul Chakravarti
2002-07-25Check snprintf() rval for < 0; OK deraadt@Todd C. Miller
2002-06-09When checking for valid login names, check length against MaxUserNameLen.Todd C. Miller
Noticed by Brian Poole who supplied a different patch.
2002-05-17When modifying a group w/ no members with groupmod(8) the trailingTodd C. Miller
newline was not added. Reported by Rob Sessink, different fix by me.
2002-04-04From Brian Poole:Todd C. Miller
o unlink /etc/group temp file if rename fails o when doing 'cd' in a system() separate with && not ';' so we don't do stuff in the wrong place. Much of this should just be done inline.
2002-04-03UID ranges specified on the command line were being overridden byTodd C. Miller
those found in the config file. Those on the command line should be used in preference to the config file ranges. Based on a patch from Brian Poole.
2002-03-14Remove \n from err/errx/warn/warnx().Mike Pechkin
millert@ ok
2002-03-05'user -D -k path' was not actually changing the default values unless anotherTodd C. Miller
option to change was specified. Also fix man page formatting mistake. From Brian Poole
2001-12-05Minor sync with NetBSDTodd C. Miller
o fix two err() calls that should be errx() o don't use the colonc variable in a non-obvious way o add missing or of F_SHELL when in preserve mode
2001-12-05o Use proper uid_t and gid_t types and fixup printf format strings to matchTodd C. Miller
o Change "unsigned" -> "unsigned int" o Correct a buffer size that should have been LINE_MAX o Simplify creation of group entry in groupmod() using strlcat() and catch errors. Theo and myself...
2001-11-15fix password length check; allows usermod -p to work again.Dan Harnett
ok millert@
2001-11-08Replace unreadable snprintf() and pointer arithmetic with simple strlcat().Todd C. Miller
If group file line would grow to be too long, leave it unmolested (previously it would get removed). Use fclose(fp) not close(fd) for a stream that was fdopen()ed. Otherwise we could leak memory. When calling fwrite() pass the buffer as a single element instead of using n one-byte elements.
2001-09-18Sync with NetBSD plus the following changes:Todd C. Miller
o use LINE_MAX for the max password entry length. This is also what pwd_mkdb does. o add more checks for lines that are too long o kill some useless (and incorrect) casts o check snprintf() return vals for sanity before use o sync usage() with man pages o slight KNF o eliminate some silly uses of snprintf
2001-08-16extra arg to pw_mkdbTodd C. Miller
2001-03-24cleanup error messageJakob Schlyter