215 Commits

Author SHA1 Message Date
bapt
7ba2ab6d8e MFC: r290153 (by bdrewery)
Fix unlikely memory leak.

It is unlikely since the first check in the function is that dir[0] is '/',
but later code changes may make it real.

Coverity CID:	1332104
2016-01-11 19:26:18 +00:00
bapt
d873bf8d21 MFC: 278899
Regression: fix usershow -7
2016-01-11 19:22:58 +00:00
bapt
c7542adcf1 MFC: r292846, r292847, r292849
Restore dryrun support for pw groupmod
Remove useless assignement of linelen
Simplify code for parsing extra groups
2015-12-30 23:25:45 +00:00
bapt
cebf099541 MFC: r291658
pw_checkname since the beginning is too strict on GECOS field,
relax it a bit so gecos can be used to store multibytes data.

This was unseen before FreeBSD 10.2 as this validation function was motly unused
since FreeBSD 10.2 the usage of this function has been generalized to improve

Reported by:	des
2015-12-09 21:38:26 +00:00
bapt
79deb7823d MFC: r291657
Fix handling of numeric-only names with pw lock
Add a regression test about it

PR:		204968
2015-12-09 21:34:03 +00:00
delphij
2222968ca1 MFC r290174:
In pw_userlock, set 'name' to NULL when we encounter an all number string
because it is also used as an indicator of whether a name or an UID is
being used and we may have undefined results as 'name' may contain
uninitialized stack contents.
2015-11-15 07:14:17 +00:00
ngie
6be0ee955f MFC r289600:
Initialize `quiet` to false so `pw groupnext` again prints out the next gid
by default

Reported by: Florian Degner <f.degner@gmx.de>
PR: 203876
Sponsored by: EMC / Isilon Storage Division
2015-10-26 00:28:05 +00:00
wblock
8c200fe8a0 MFC 289067:
Fix a repeated typo: rootir -> rootdir.
2015-10-17 02:49:19 +00:00
bapt
95285c2f6d MFC: r287701
Regression: fix pw usermod -d

Mark the user has having been edited if -d option is passed to usermod and
so the request change of home directory actually happen

PR:		203052
Reported by:	lenzi.sergio@gmail.com
2015-09-14 05:37:32 +00:00
bapt
99f1ebbac6 MFC: r285133,r285136,r285137,r285156,r285157,r285158,r285256,r285318,r285395,
r285396,r285398,r285401,r285403,r285405,r285406,r285408,r285409,r285411,
r285412,r285413,r285415,r285418,r285430,r285433,r285434,r285442,r285948,
r285984,r285985,r285989,r285996,r285997,r286045,r286047,r286066,r286150,
r286151,r286152,r286154,r286155,r286156,r286157,r286173,r286196,r286197,
r286198,r286199,r286200,r286201,r286202,r286203,r286204,r286210,r286211,
r286217,r286218,r286258,r286259,r286341,r286775,r286982,r286986,r286991,
r286993

Validate most pw inputs.
Rewrite the way parsing sub arguments is made to simplify code and improve
maintenability
Add -y (NIS) to userdel/usermod
pw userdel -r <rootdir> now deletes directories in the rootdir
Only parse pw.conf when needed
Reject usermod and userdel if the user concerned is not on the user database
supposed to be manipulated
2015-08-23 21:42:27 +00:00
bapt
c527db206b Fix segfault were modifying the uid of a user
Do a direct commit as the code on head has changed a lot and does not fail in
that case

PR:		202111
Reported by:	gondim@bsdinfo.com.br
2015-08-05 20:32:07 +00:00
bapt
c18dc3d1d6 MFC: r285414, r285440, r285441, r285443
- allow to create users with uid 0
- fix check duplicates logic
- fix gid policy to be in sync with uid if possible

Reported by:	Jan Mikkelsen <janm@transactionware.com>
Approved by:	re (marius)
2015-07-14 12:21:47 +00:00
bapt
9420a4ea0e MFC: r274011,r274022,r274453,r274542,r274632,r274727,r275653,r275656,r275657,
r275658,r275829,r277652,r277764,r278475,r278767,r278819,r278902,r279256,
     r282681,r282683,r282685,r282686,r282687,r282697,r282698,r282699,r282700,
     r282709,r282712,r282713,r282716,r282718,r282719,r282720,r282721,r283809,
     r283810,r283811,r283814,r283815,r283816,r283818,r283841,r283842,r283843,
     r283961,r283962,r284110,r284111,r284112,r284113,r284114,r284117,r284118,
     r284119,r284120,r284121,r284122,r284123,r284124,r284126,r284128,r284129,
     r284130,r284133,r284135,r284137,r284139,r284140,r284148,r284149,r284392

Lots of cleanup in the pw(8) code
Add pw -R <rootdir>
Add lots of regression tests
More accurate error messages

Approved by:	re (kib)
Sponsored by:	gandi.net
2015-07-03 14:22:44 +00:00
bapt
6d659fd65b MFC: r283695
Remove dead declaration

PR:		195928
2015-05-31 00:52:45 +00:00
ian
eddd11598c Fix an apparent mis-merge that happened in r274082. Before that, on the
10-stable branch, this makefile had WARNS=2, and on head the value is
still 2, but in the MFC done in r274082 it got changed to 3, causing build
failures when building with gcc.  This direct commit to 10 goes back to
WARNS=2.
2014-11-09 19:56:26 +00:00
bapt
5daa84302c MFC: 272445,272578,273772,273779,273782,273786,273787,273791
Add a test for bug 191427 where pw(8) will go into an infinite loop
Add some tests for modifying groups
When a group is renamed then the group has been invalidated for sure.
In that case get the group information using the new name.

Fix a regression in pw usermod -G list

The user was perperly adding the to different groups from "list" but was not
removed from the other groups it could have belong to.

Do not delete the group wheel when bad argument is passed to pw groupdel -g

Check that the -g argument is actually a number, if not report an error.
This argument is converted without checking with atoi(3) later so without this
check it converts any alpha entries into 0 meaning it deletes the group wheel

Ensure pw userdel -u <invalid> do not try to remove root

Check the uid passed is actually a number as early as possible

Fix renaming a group via the gr_copy function

Add a regression test to pw(8) because the bug was discovered via using:
pw groupmod

PR:		193704 [1], 185666 [2], 90114 [3], 187189 [4]
Submitted by:	Marc de la Gueronniere [4]
Reported by:	az [1], sub.mesa@gmail.com [2], bkoenig@cs.tu-berlin.de [3],
		mcdouga9@egr.msu.edu [4]
2014-11-04 07:50:48 +00:00
des
046882fc4f MFH (r272830): change the hardcoded default back to DES
MFH (r272833): remove last vestige of MD5 password hashes
2014-10-13 15:56:47 +00:00
dteske
786740ec0a MFC revisions 262864-262865, 263114, 267970:
r262864: Stop pw(8) from segfaulting when given certain input (julian)
r262865: Part 2 of bug 187310 (julian)
r263114: Fix pw(8) edge-case deletion of group "username" on userdel
r267970: Fix infinite-loop during deletion of users from groups

PR:		187310, 169471, 191427
Submitted by:	Voradesh Yenbut, Alexander Pyhalov, Kim Shrier
Obtained from:	bug
Approved by:	re (gjb)
2014-09-26 23:01:27 +00:00
bapt
6763aa7bd2 MFH: r264781, r267669, r267670
Simplify reading pw.conf(5) by using getline(3)

Removed compatibility with pre FreeBSD 2.2 pw_mkdb command [1]
Fix some broken indentattion [1]

Fix changing the username [2]

PR:		189172 [1], 189173 [2]
Submitted by:	fullermd@over-yonder.net [1][2]
2014-07-06 23:24:06 +00:00
des
54d398971f Fall back to sha512 if passwd_format is not set.
MFC after:	3 days
2013-07-04 07:59:11 +00:00
des
6732f8a6e3 There is no reason to disallow setting the password or account expiry
date to the current date.

MFC after:	3 days
2013-07-03 09:48:24 +00:00
kientzle
c49ebfc982 Fix -Wunsequenced warning
Submitted by:	  dt71@gmx.com
2013-06-29 15:54:17 +00:00
joel
d1ce45a46f mdoc sweep 2013-05-13 18:13:50 +00:00
deischen
bb6c47e42f Prevent a null pointer dereference in pw userdel when deleting
a user whose group != username.
2013-02-01 05:19:49 +00:00
eadler
aa508f10e8 Remove unused variables
Approved by:	cperciva
MFC After:	3 days
2013-01-16 05:03:49 +00:00
mjg
580a3aadfb pw: free group returned by gr_add 2013-01-06 21:56:58 +00:00
bapt
cdddb6f42a Simplify vnextgrent and vnextpwent reusing pw_scan and gr_scan from libutil. 2012-12-27 19:43:29 +00:00
bapt
a7f43aa146 Fix a regression in "pw group show" introduced r242349:
print a newline after printing each group line.

PR:		bin/174731
Submitted by:	Jan Beich <jbeich@tormail.org>
2012-12-27 14:44:13 +00:00
bapt
e5fca3f7cb Simplify the code by using the new gr_add function 2012-12-27 14:35:06 +00:00
bapt
219a9acfae Simplify copying of group members by using memcpy
Submitted by:	Christoph Mallon <christoph.mallon@gmx.de>
2012-12-26 23:16:24 +00:00
bapt
bc1ecc20ad Fix off-by-one error in memory allocation: j entries, one new and a null
terminator is j + 2.

Submitted by:	Christoph Mallon <christoph.mallon@gmx.de>
2012-12-26 23:14:33 +00:00
bapt
13dabd466a In case of the deletion of a user those whole database has to be regenerated,
otherwise the user planned to be deleted remain in the pwd.db while removed from
the plain text password file.
2012-12-26 18:28:17 +00:00
bapt
d1e0080a5e Fix creating a user and adding it to a group
Reported by:	"Sam Fourman Jr." <sfourman@gmail.com>, dim
2012-12-26 18:14:45 +00:00
eadler
3b3a43cfae Simplify string duplication: use strdup instead of malloc + strcpy
Submitted by:	db
Approved by:	cperciva
MFC after:	2 weeks
2012-12-05 13:56:56 +00:00
eadler
dff4ef46f6 Avoid overflowing the file buffer
Submitted by:	db
Approved by:	cperciva
MFC after:	2 weeks
2012-12-05 13:56:52 +00:00
eadler
91505a4776 Use strdup instead of malloc + strcpy
Submitted by:	db
Approved by:	cperciva
MFC after:	2 weeks
2012-12-05 13:56:49 +00:00
eadler
b0ad1517b2 Avoid overflow of file buffer
Submitted by:	db
Approved by:	cperciva
MFC after:	2 weeks
2012-12-05 13:56:46 +00:00
eadler
dd0944c119 Remove useless check for NULL prior to free.
Approved by:	cperciva
MFC after:	2 weeks
2012-12-05 13:56:43 +00:00
bapt
1bf34f2c1b In NIS mode first chmod(2) the temporary file and is succeed then rename(2) 2012-11-20 14:05:46 +00:00
bapt
7df2814837 Correctly set the password file mode after renaming in NIS mode 2012-11-20 10:59:41 +00:00
bapt
cfea627c58 Teach pw(8) about how to use pw/gr API to reduce code duplication
MFC after:	2 months
2012-10-30 08:00:53 +00:00
bapt
d80e087677 Do not treat empty name as an uid 0
Reported by:	Robert Bonomi <bonomi@mail.r-bonomi.com>
2012-10-01 17:00:33 +00:00
bapt
750731b250 Remove useless atoi(3), previous strspn(3) makes sure that a_name->val is a
number.
This also allow pw user show to work as expected.

PR:		bin/172112
Submitted by:	"Ilya A. Arkhipov" <rum1cro@yandex.ru>
MFC after:	1 month
2012-10-01 16:42:07 +00:00
kevlo
a93e845e54 Make sure that each va_start has one and only one matching va_end,
especially in error cases.
2012-09-28 07:51:30 +00:00
kevlo
1381e63d6c Handle NULL return from crypt(3). Mostly from DragonFly 2012-02-22 06:27:20 +00:00
kevlo
a6e5cd41ae readlink len-1 2012-02-14 10:17:03 +00:00
uqs
415a3a9b96 Spelling fixes for usr.sbin/ 2011-12-30 10:58:14 +00:00
eadler
50c4635b88 - document the -l option to usermod
PR:		docs/161588
Submitted by:	"Luchesar V. ILIEV" <luchesar.iliev@gmail.com>
Approved by:	gjb
MFC after:	1 week
2011-12-22 03:36:54 +00:00
dim
8521853f9c In usr.sbin/pw/pw_user.c, use the correct printf length modifier for a
ptrdiff_t.

MFC after:	1 week
2011-12-17 23:46:47 +00:00
delphij
48395f1e91 Backout r223115 which potentially caused a POLA violation, by restoring
historic behavior (create the default base directory in pw.conf) before
I came up with a better fix for this.

Requested by:	nwhitehorn
Approved by:	re (kib)
2011-07-31 03:00:00 +00:00