Tobias Stoeckmann
81078c57fb
Fix typos
...
Typos in comments and configure output, i.e. no functional change.
Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org >
2024-09-13 22:27:08 +02:00
Iker Pedrosa
8903b94c86
useradd: fix write_full() return value
...
write_full() returns -1 on error and useradd was checking another value.
Closes: https://github.com/shadow-maint/shadow/issues/1072
Fixes: f45498a6c2 ("libmisc/write_full.c: Improve write_full()")
Reported-by: <https://github.com/brown-midas >
Suggested-by: <https://github.com/brown-midas >
Reviewed-by: Alejandro Colomar <alx@kernel.org >
Reviewed-by: Iker Pedrosa <ipedrosa@redhat.com >
2024-09-13 09:44:51 +02:00
Alejandro Colomar
1f11a5ce5a
src/: Recommend --badname only if it is useful
...
(Review with -w (--ignore-all-space).)
Closes: <https://github.com/shadow-maint/shadow/issues/1067 >
Reported-by: Anselm Schüler <mail@anselmschueler.com >
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-09-01 08:17:11 -05:00
Alejandro Colomar
0663c91f80
src/: Invert logic to improve readability
...
And remove the (now) redundant comments.
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-09-01 08:17:11 -05:00
Alejandro Colomar
87a5145719
lib/: Move memzero.[ch] under lib/string/memset/
...
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-08-30 21:44:07 -05:00
Alejandro Colomar
60da937c2f
src/chage.c: print_day_as_date(): Handle errors from strfime(3)
...
Just like we do in day_to_str().
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-08-22 22:51:57 -05:00
Alejandro Colomar
6a2e298a5b
src/chage.c: print_day_as_date(): Simplify error handling
...
If localtime_r(3) fails, just print future, as we do in day_to_str().
It should only fail for unrealistic dates, if at all.
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-08-22 22:51:57 -05:00
Alejandro Colomar
683b3caa62
lib/, src/: Use %F instead of %Y-%m-%d with strftime(3)
...
%F is specified by ISO C99. It adds semantic meaning as printing an
ISO 8601 date.
Scripted change:
$ cat ~/tmp/spatch/strftime_F.sp
@@
@@
- "%Y-%m-%d"
+ "%F"
$ find contrib/ lib* src/ -type f \
| xargs spatch --sp-file ~/tmp/spatch/strftime_F.sp --in-place
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-08-22 22:51:57 -05:00
Alejandro Colomar
3f5b4b5626
lib/, src/: Use local time for human-readable dates
...
That is, use localtime_r(3) instead of gmtime_r(3).
Closes: <https://github.com/shadow-maint/shadow/issues/1057 >
Reported-by: Gus Kenion <https://github.com/kenion >
Cc: Serge Hallyn <serge@hallyn.com >
Cc: Paul Eggert <eggert@cs.ucla.edu >
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-08-01 10:12:44 +02:00
Alejandro Colomar
745281f295
lib/atoi/, *: Split files
2024-07-11 22:42:58 -05:00
Alejandro Colomar
2dda45a390
src/usermod.c: Use id_t for parsing uid_t and gid_t
...
Use a static_assert(3) to make sure that id_t == uid_t == gid_t.
And use uintmax_t to print it, since on Linux they are unsigned types.
Link: <https://github.com/shadow-maint/shadow/pull/951 >
Reviewed-by: Tycho Andersen <tycho@tycho.pizza >
Cc: Serge Hallyn <serge@hallyn.com >
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-07-11 22:42:58 -05:00
Alejandro Colomar
cfb8df4a91
src/usermod.c: Rename identifiers ralated to [ug]id's
...
It was unclear why this code is using ulong. Since these only handle
uid's and gid's, rename the identifiers accordingly, after id_t.
Link: <https://github.com/shadow-maint/shadow/pull/951 >
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-07-11 22:42:58 -05:00
Alejandro Colomar
568d26d7ed
src/login_nopam.c: login_access(): Use stpsep() to simplify
...
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-07-08 20:25:01 -05:00
Alejandro Colomar
a7b169be18
src/useradd.c: Use stpsep() to simplify
...
This allows using plain strcmp(3) instead of MATCH().
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-07-08 20:25:01 -05:00
Alejandro Colomar
8714ac0cd6
src/suauth.c: check_su_auth(): Use stpsep() to simplify
...
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-07-08 20:25:01 -05:00
Alejandro Colomar
d91b22cc2f
lib/, src/: Use stpsep() instead of its pattern
...
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-07-08 20:25:01 -05:00
Alejandro Colomar
59e5eef38f
contrib, lib/, src/, tests/: Use stpcpy(3) instead of its pattern
...
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-07-03 10:03:12 -05:00
Alejandro Colomar
c6018240f8
lib/, src/: Use strrspn() instead of its pattern
...
This requires changing isspace(3) calls to an explicit accept string,
and I chose " \t\n" for it (as is done in other parts of this project),
which isn't exactly the same, but we probably don't want other
isspace(3) characters in those files, so it should work.
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-07-03 10:03:12 -05:00
Alejandro Colomar
813c3ec6c5
src/login_nopam.c: login_access(): Simplify, calling strchr(3)
...
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-07-03 10:03:12 -05:00
Alejandro Colomar
b38ee0c6d0
src/chage.c: Simplify, by calling a2sl() instead of str2sl()
...
Reviewed-by: "Serge E. Hallyn" <serge@hallyn.com >
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-07-02 22:52:31 +02:00
Alejandro Colomar
ab9f4da83f
src/faillog.c: Simplify, by calling str2sh() instead of str2sl()
...
Reviewed-by: "Serge E. Hallyn" <serge@hallyn.com >
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-07-02 22:52:31 +02:00
Alejandro Colomar
0464c1abf1
src/usermod.c: Simplify, by calling a2sl() instead of str2sl()
...
Reviewed-by: "Serge E. Hallyn" <serge@hallyn.com >
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-07-02 22:52:31 +02:00
Alejandro Colomar
e341291f99
src/passwd.c: Simplify, by calling a2sl() instead of str2sl()
...
Reviewed-by: "Serge E. Hallyn" <serge@hallyn.com >
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-07-02 22:52:31 +02:00
Alejandro Colomar
b178fed180
src/useradd.c: Simplify, by calling a2sl() instead of str2sl()
...
Reviewed-by: "Serge E. Hallyn" <serge@hallyn.com >
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-07-02 22:52:31 +02:00
Alejandro Colomar
ebdeb8f22a
src/: Use get_[ug]id() where appropriate
...
Reviewed-by: "Serge E. Hallyn" <serge@hallyn.com >
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-07-02 22:52:31 +02:00
Alejandro Colomar
866d911655
Remove groups(1)
...
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-07-02 13:32:13 -05:00
Alejandro Colomar
c7981fdd00
Remove id(1)
...
Distributions use id(1) from GNU coreutils or BusyBox. Drop ours.
Closes: <https://github.com/shadow-maint/shadow/issues/1005 >
Suggested-by: dkwo <nicolopiazzalunga@gmail.com >
Cc: "Serge E. Hallyn" <serge@hallyn.com >
Cc: Iker Pedrosa <ipedrosa@redhat.com >
Cc: Michael Vetter <jubalh@iodoru.org >
Cc: Sam James <sam@gentoo.org >
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-07-02 13:32:13 -05:00
Alejandro Colomar
53e1eb4045
src/: Remove dead code
...
FIRST_MEMBER_IS_ADMIN was never enabled. And BTW, that code had been
broken for a long time, so probably nobody should manually enable it.
Link: <https://github.com/shadow-maint/shadow/pull/991#discussion_r1660308748 >
Reported-by: Serge Hallyn <serge@hallyn.com >
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-07-01 21:40:11 -05:00
Alejandro Colomar
3049bef9c3
lib/alloc/, lib/, src/, tests/: Organize the allocation APIs in a new subdirectory
...
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-07-01 21:40:11 -05:00
Alejandro Colomar
29f4f03def
lib/string/strdup/xstrdup.[ch], lib/, src/: Move xstrdup() to its own file
...
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-07-01 21:40:11 -05:00
Alejandro Colomar
85a2f36992
src/logoutd.c: Use STRNCAT() instead of its pattern
...
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-07-01 21:40:11 -05:00
Alejandro Colomar
cb3e2fbdcf
src/logoutd.c: Use STRNDUPA() instead of its pattern
...
STRNDUPA() is equivalent to automatic storage allocation (alloca(3))
+ ZUSTR2STP().
The benefits of this refactor are:
- The allocation size is always correct, and needs no comments, since
it's now automatically calculated by the macro.
- STRNDUPA() is probably more familiar, since
- strndupa(3) is a libc function,
- STRNDUPA() is the obvious wrapper that
calculates the size based on the input array.
- We can remove ZUSTR2STP().
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-07-01 21:40:11 -05:00
Alejandro Colomar
ac591763fe
src/newusers.c: Exit on ENOMEM, by calling xstrdup() instead of strdup(3)
...
The program was happily ignoring ENOMEM errors.
Fixes: 7f9e196903 ("* NEWS, src/newusers.c, src/Makefile.am: Added support for")
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-07-01 21:40:11 -05:00
Alejandro Colomar
d9923431eb
src/: Use xasprintf() instead of its pattern
...
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-07-01 21:40:11 -05:00
Alejandro Colomar
44ba094766
src/groupmems.c: Fix number of elements in allocation
...
We are setting `sgrent.sg_adm[1] = NULL;`, so we need 2 elements.
Fixes: 87b56b19fb ("* NEWS, src/groupmems.c, man/groupmems.8.xml: Added support for [...]")
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-07-01 21:40:11 -05:00
Alejandro Colomar
16cb664865
lib/, src/: Use strsep(3) instead of its pattern
...
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-07-01 21:40:11 -05:00
Alejandro Colomar
8176e309ed
src/useradd.c: tallylog_reset(): Use Basename() instead of its pattern
...
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-07-01 21:40:11 -05:00
Alejandro Colomar
964df6ed6e
lib/, src/: Use strchrnul(3) instead of its pattern
...
In the files where #include <string.h> is missing, add it, and sort the
includes.
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-07-01 21:40:11 -05:00
Alejandro Colomar
23663a1607
lib/, src/: Add missing include
...
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-07-01 21:40:11 -05:00
Alejandro Colomar
bfb6aad7cb
lib/, src/: Always pass NULL to time(2)
...
See time(2):
BUGS
Error returns from this system call are indistinguishable from
successful reports that the time is a few seconds before the
Epoch, so the C library wrapper function never sets errno as a re‐
sult of this call.
The tloc argument is obsolescent and should always be NULL in new
code. When tloc is NULL, the call cannot fail.
Fixes: 45c6603cc8 ("[svn-upgrade] Integrating new upstream version, shadow (19990709)")
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-07-01 21:40:11 -05:00
Alejandro Colomar
5e11e89fd9
lib/, src/: Reduce scope of local variables
...
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-07-01 21:40:11 -05:00
Alejandro Colomar
847a19e7a3
src/login.c: Remove dead code
...
The functions that set these strings --do_rlogin() and login_prompt()--
make sure to terminate them with a NUL.
Fixes: 3704745289 ("* lib/defines.h: Define USER_NAME_MAX_LENGTH, based on utmp and [...]")
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-07-01 21:40:11 -05:00
Alejandro Colomar
e5d40a1863
src/logoutd.c: Remove unused variable
...
wait(2) accepts NULL if the status won't be read. Simplify.
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-07-01 21:40:11 -05:00
Alejandro Colomar
89402f5171
src/su.c: save_caller_context(): Remove unused parameter
...
Fixes: e6c2e43937 ("Hardcoding Prog to known value")
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-07-01 21:40:11 -05:00
Alejandro Colomar
40ab806066
lib/string/strcpy/, lib/, src/, tests/: Move all copying APIs to a subdirectory
...
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-07-01 21:40:11 -05:00
Alejandro Colomar
22272347b6
lib/string/sprintf/, lib/, src/, tests/: Move all sprintf(3)-like APIs to a subdirectory
...
And have a separate file for each pair of APIs.
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-07-01 21:40:11 -05:00
Alejandro Colomar
89e4be3957
src/get_subid_owners.c: Use uid_t for holding UIDs (and GIDs)
...
Suggested-by: "Serge E. Hallyn" <serge@hallyn.com >
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-06-29 20:00:18 +02:00
Alejandro Colomar
1f7c00b8f7
src/usermod.c: Fix const correctness
...
Now that we use liba2i's const-generic macros, we can (and must) use a
'const char **' endp where the input string is 'const char *'.
Reviewed-by: "Serge E. Hallyn" <serge@hallyn.com >
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-06-29 20:00:18 +02:00
Alejandro Colomar
7f86f893ab
lib/, po/, src/: get_uid(): Move function to "atoi/getnum.h"
...
Implement it as an inline function, and add restrict and ATTR_STRING()
and ATTR_ACCESS() as appropriate.
Reviewed-by: "Serge E. Hallyn" <serge@hallyn.com >
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-06-29 20:00:18 +02:00
Alejandro Colomar
8ad2768472
src/usermod.c: getulong_range(): Reimplement in terms of a2ul()
...
Reviewed-by: "Serge E. Hallyn" <serge@hallyn.com >
Signed-off-by: Alejandro Colomar <alx@kernel.org >
2024-06-29 20:00:18 +02:00