]>
git.ipfire.org Git - thirdparty/shadow.git/log
Tobias Stoeckmann [Fri, 13 Sep 2024 19:49:08 +0000 (21:49 +0200)]
lib/run_part: Use correct data types
Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
Tobias Stoeckmann [Fri, 13 Sep 2024 19:30:52 +0000 (21:30 +0200)]
Fix typos
Typos in comments and configure output, i.e. no functional change.
Signed-off-by: Tobias Stoeckmann <tobias@stoeckmann.org>
Iker Pedrosa [Mon, 9 Sep 2024 08:36:17 +0000 (10:36 +0200)]
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: f45498a6c286 ("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>
Pino Toscano [Tue, 10 Sep 2024 12:36:49 +0000 (14:36 +0200)]
lib/user_busy.c: Include <utmpx.h>
Since:
- utmpx APIs are used in non-Linux code blocks
- <utmpx.h> is already unconditionally included in Linux parts in other
files
then unconditionally include it in this file as well.
Signed-off-by: Pino Toscano <toscano.pino@tiscali.it>
Alejandro Colomar [Sat, 31 Aug 2024 09:55:27 +0000 (11:55 +0200)]
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>
Alejandro Colomar [Sat, 31 Aug 2024 09:37:40 +0000 (11:37 +0200)]
src/: Invert logic to improve readability
And remove the (now) redundant comments.
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Sat, 31 Aug 2024 09:25:00 +0000 (11:25 +0200)]
lib/chkname.c: is_valid_{user,group}_name(): Set errno to distinguish the reasons
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Sat, 31 Aug 2024 09:07:04 +0000 (11:07 +0200)]
man/userdel.8.xml: Reword '-f'
The previous wording seemed to say that -f implied -r. It doesn't; -f
only skips safety checks, so reword accordingly.
Closes: <https://github.com/shadow-maint/shadow/issues/1062>
Reported-by: Martin von Wittich <martin.von.wittich@iserv.eu>
Cc: "Serge E. Hallyn" <serge@hallyn.com>
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Mon, 12 Aug 2024 00:21:01 +0000 (02:21 +0200)]
lib/: Chain free(strzero(s))
This reduces the repetition of the argument, which could be error-prone.
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Mon, 12 Aug 2024 00:15:18 +0000 (02:15 +0200)]
lib/string/memset/: memzero(), strzero(): Return the pointer
This allows chaining with free(3) on the same line.
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Sun, 11 Aug 2024 23:53:45 +0000 (01:53 +0200)]
lib/: Move memzero.[ch] under lib/string/memset/
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Sat, 3 Aug 2024 09:51:23 +0000 (11:51 +0200)]
po/es.po: wsfix
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Thu, 1 Aug 2024 10:37:24 +0000 (12:37 +0200)]
lib/string/strftime.h: STRFTIME(): Tighten macro definition
strftime(3) is not a variadic function; there's exactly one argument
after the format string.
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Sun, 11 Aug 2024 19:42:03 +0000 (21:42 +0200)]
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>
Alejandro Colomar [Wed, 31 Jul 2024 12:53:12 +0000 (14:53 +0200)]
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>
Alejandro Colomar [Thu, 1 Aug 2024 10:32:12 +0000 (12:32 +0200)]
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>
Chris Hofstaedtler [Mon, 5 Aug 2024 22:48:16 +0000 (00:48 +0200)]
Remove references to cppw, cpgr
cppw, cpgr were Debian-only tools, which I've dropped in a recent upload.
Upstream should have never had tests for them.
Signed-off-by: Chris Hofstaedtler <zeha@debian.org>
Carles Pina i Estany [Tue, 6 Aug 2024 22:22:38 +0000 (23:22 +0100)]
Update Catalan translation
Alejandro Colomar [Wed, 31 Jul 2024 12:35:15 +0000 (14:35 +0200)]
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>
Eisuke Kawashima [Mon, 8 Jul 2024 17:14:49 +0000 (02:14 +0900)]
doc(login.defs): fix type of TTYPERM
Iker Pedrosa [Wed, 29 May 2024 14:28:04 +0000 (16:28 +0200)]
share/containers: remove unused dockerfiles
Signed-off-by: Iker Pedrosa <ipedrosa@redhat.com>
Iker Pedrosa [Wed, 29 May 2024 14:26:39 +0000 (16:26 +0200)]
CI: use Ansible build in Github Action
Signed-off-by: Iker Pedrosa <ipedrosa@redhat.com>
Iker Pedrosa [Wed, 29 May 2024 14:21:05 +0000 (16:21 +0200)]
doc: update documentation to use Ansible build
Signed-off-by: Iker Pedrosa <ipedrosa@redhat.com>
Iker Pedrosa [Wed, 29 May 2024 14:20:01 +0000 (16:20 +0200)]
share/container-build.sh: update to use Ansible build
Signed-off-by: Iker Pedrosa <ipedrosa@redhat.com>
Iker Pedrosa [Wed, 29 May 2024 13:55:13 +0000 (15:55 +0200)]
share/ansible: implement distribution selection
Distribution to run can be selected when running `ansible-playbook` by
appending `-e 'distribution=fedora'` to the command.
Signed-off-by: Iker Pedrosa <ipedrosa@redhat.com>
Iker Pedrosa [Tue, 14 May 2024 15:35:48 +0000 (17:35 +0200)]
share/ansible: convert alpine dockerfile to ansible
Signed-off-by: Iker Pedrosa <ipedrosa@redhat.com>
Iker Pedrosa [Tue, 14 May 2024 15:14:05 +0000 (17:14 +0200)]
share/ansible: convert debian dockerfile to ansible
Signed-off-by: Iker Pedrosa <ipedrosa@redhat.com>
Iker Pedrosa [Tue, 14 May 2024 15:11:39 +0000 (17:11 +0200)]
share/ansible: move fedora ci_run to its own file
Signed-off-by: Iker Pedrosa <ipedrosa@redhat.com>
Iker Pedrosa [Tue, 14 May 2024 10:52:39 +0000 (12:52 +0200)]
share/.gitignore: add build-out folder
Signed-off-by: Iker Pedrosa <ipedrosa@redhat.com>
Iker Pedrosa [Tue, 14 May 2024 10:49:28 +0000 (12:49 +0200)]
share/ansible: create roles
Create `build_container` and `ci_run` roles and move the fedora target
to them.
Signed-off-by: Iker Pedrosa <ipedrosa@redhat.com>
Iker Pedrosa [Thu, 2 May 2024 14:09:02 +0000 (16:09 +0200)]
share/ansible: convert fedora dockerfile to ansible
Using a dockerfile to build, install and test the code can be
problematic as we can't capture the log files to check what failed in
case of failure. This PR converts the fedora dockerfile to Ansible, an
open source IT automation tool. The tool can be used on the developers
and the CI system to check whether a piece of code can be built,
installed and tested.
This is the first patch in a series, where I will convert the existing
PR workflows to use Ansible instead of dockerfiles.
Signed-off-by: Iker Pedrosa <ipedrosa@redhat.com>
Chris Hofstaedtler [Sun, 7 Jul 2024 11:36:55 +0000 (13:36 +0200)]
Makefile.am: avoid warning: EXTRA_DIST multiply defined
automake complained about duplicate definitions of EXTRA_DIST:
autoreconf: running: automake --add-missing --copy --no-force
Makefile.am:19: warning: EXTRA_DIST multiply defined in condition TRUE ...
Makefile.am:3: ... 'EXTRA_DIST' previously defined here
autoreconf: Leaving directory '.'
Signed-off-by: Chris Hofstaedtler <zeha@debian.org>
Chris Hofstaedtler [Sun, 7 Jul 2024 00:11:45 +0000 (02:11 +0200)]
tests/libsubid/04_nss: fix setting basedir
Align on variable name BUILD_BASE_DIR for overriding the toplevel
directory. This is the same name as accepted by tests/common/config.sh.
Without this, the test libsubid/04_nss fails in Debian's autopkgtests.
Signed-off-by: Chris Hofstaedtler <zeha@debian.org>
Sebastian Gross [Wed, 17 Jul 2024 12:22:19 +0000 (14:22 +0200)]
man: groupmod: remove misleading -N option
The extra paragraph for --users mentions a -N option. groupmod has no -N
option.
Prevent confusion and remove its appearance.
Signed-off-by: Sebastian Gross <sgross@emlix.com>
Sebastian Gross [Wed, 17 Jul 2024 12:18:18 +0000 (14:18 +0200)]
man: group(add|mod): clarify list format
The --users list option expect a string of comma separated values.
While this might be obvious to some others it is certainly not for others.
Remove this ambiguity.
Closes #848
Signed-off-by: Sebastian Gross <sgross@emlix.com>
Sebastian Gross [Wed, 17 Jul 2024 12:16:03 +0000 (14:16 +0200)]
man: groupmod: fix misleading param
--append has no argument in groupmod.c but the man pages states GID as
parameter.
In order to avoid confusion remove it from man page.
Signed-off-by: Sebastian Gross <sgross@emlix.com>
Alejandro Colomar [Sat, 13 Jul 2024 09:37:25 +0000 (11:37 +0200)]
lib/chkname.c: An object cannot expand further than the universe in which it resides
If you want a larger object, you'll have to wait at least until the
universe expands so much.
If an implementation doesn't recognize its own limitations, its a bug,
not a feature.
Closes: <https://github.com/shadow-maint/shadow/issues/1052>
Cc: Tobias Stoeckmann <tobias@stoeckmann.org>
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Sun, 30 Jun 2024 01:00:40 +0000 (03:00 +0200)]
lib/atoi/strtoi/, tests/: strto[iu]_(): 1 is an invalid base
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Sun, 30 Jun 2024 00:18:55 +0000 (02:18 +0200)]
lib/atoi/, *: Split files
Alejandro Colomar [Thu, 15 Feb 2024 14:50:45 +0000 (15:50 +0100)]
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>
Alejandro Colomar [Thu, 15 Feb 2024 14:55:33 +0000 (15:55 +0100)]
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>
Alejandro Colomar [Tue, 16 Jan 2024 01:27:56 +0000 (02:27 +0100)]
lib/idmapping.c: get_map_ranges(): Don't exit() from a library function
Fixes: ff2baed5dbf8 ("idmapping: add more checks for overflow")
Link: <https://github.com/shadow-maint/shadow/commit/
ff2baed5dbf81e8967b805889f565fedb48600df #r136635300>
Reported-by: Alejandro Colomar <alx@kernel.org>
Suggested-by: Serge Hallyn <serge@hallyn.com>
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Thu, 11 Jan 2024 17:11:13 +0000 (18:11 +0100)]
lib/idmapping.c: get_map_ranges(): Simplify iterator variables
Merge two iterator variables into one, and reduce its scope.
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Thu, 11 Jan 2024 11:19:24 +0000 (12:19 +0100)]
lib/idmapping.c: get_map_ranges(): Remove dead code
This test is impossible. The limits specified in a2ul() already cover
this.
Link: <https://github.com/shadow-maint/shadow/commit/
ff2baed5dbf81e8967b805889f565fedb48600df #r136635300>
Cc: Serge Hallyn <serge@hallyn.com>
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Thu, 11 Jan 2024 11:17:36 +0000 (12:17 +0100)]
lib/idmapping.c: get_map_ranges(): Move range check to a2ul() call
Link: <https://github.com/shadow-maint/shadow/commit/
ff2baed5dbf81e8967b805889f565fedb48600df #r136635300>
Cc: Serge Hallyn <serge@hallyn.com>
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Thu, 11 Jan 2024 11:15:11 +0000 (12:15 +0100)]
lib/idmapping.c: get_map_ranges(): Move range check to a2ul() call
Link: <https://github.com/shadow-maint/shadow/commit/
ff2baed5dbf81e8967b805889f565fedb48600df #r136635300>
Cc: Serge Hallyn <serge@hallyn.com>
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Thu, 11 Jan 2024 11:07:58 +0000 (12:07 +0100)]
lib/idmapping.c: get_map_ranges(): Move range check to a2ul() calls
Link: <https://github.com/shadow-maint/shadow/commit/
ff2baed5dbf81e8967b805889f565fedb48600df #r136635300>
Cc: Serge Hallyn <serge@hallyn.com>
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Thu, 11 Jan 2024 11:04:23 +0000 (12:04 +0100)]
lib/idmapping.c: get_map_ranges(): Rename local variable
For a pointer iterator used often, a single-letter identifier is more
appropriate. That reduces the length of lines considerably, avoiding
unnecessary line breaks. And since we initialize it with
m = mappings;
it's clear what it is.
Link: <https://github.com/shadow-maint/shadow/commit/
ff2baed5dbf81e8967b805889f565fedb48600df #r136635300>
Cc: Serge Hallyn <serge@hallyn.com>
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Thu, 11 Jan 2024 10:47:50 +0000 (11:47 +0100)]
lib/limits.c: check_logins(): Report LOGIN_ERROR_LOGIN if str2ul() ERANGE
Fixes: 10396f953613 ("* libmisc/limits.c: Parse the limits, umask, nice, maxlogin, file limit with getlog() / getulong().")
Link: <https://github.com/shadow-maint/shadow/pull/893/commits/
882cf59459bc4501b0882a7f02d36c8ce28a30f2 >
Cc: Iker Pedrosa <ipedrosa@redhat.com>
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Thu, 4 Jul 2024 12:35:24 +0000 (14:35 +0200)]
src/login_nopam.c: login_access(): Use stpsep() to simplify
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Thu, 4 Jul 2024 12:26:09 +0000 (14:26 +0200)]
src/useradd.c: Use stpsep() to simplify
This allows using plain strcmp(3) instead of MATCH().
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Thu, 4 Jul 2024 11:25:57 +0000 (13:25 +0200)]
lib/nss.c: nss_init(): Use stpsep() instead of strtok_r(3)
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Wed, 3 Jul 2024 21:41:16 +0000 (23:41 +0200)]
src/suauth.c: check_su_auth(): Use stpsep() to simplify
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Wed, 3 Jul 2024 00:18:37 +0000 (02:18 +0200)]
lib/string/strchr/stpcspn.[ch]: stpcspn(): Remove unused function
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Tue, 2 Jul 2024 23:59:19 +0000 (01:59 +0200)]
lib/attr.h: ATTR_STRING(): It only accepts one argument
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Tue, 2 Jul 2024 22:32:12 +0000 (00:32 +0200)]
lib/, src/: Use stpsep() instead of its pattern
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Tue, 2 Jul 2024 17:31:38 +0000 (19:31 +0200)]
lib/string/strtok/stpsep.[ch]: stpsep(): Add function
This function is somewhat simpler to use than strsep(3) in some cases.
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Chris Hofstaedtler [Sun, 7 Jul 2024 11:31:41 +0000 (13:31 +0200)]
lib/find_new_[gu]id.c: include stdint.h for UINT16_MAX/UINT32_MAX
Signed-off-by: Chris Hofstaedtler <zeha@debian.org>
Alejandro Colomar [Tue, 2 Jul 2024 16:57:44 +0000 (18:57 +0200)]
lib/port.c: getportent(): Use strsep(3) instead of its pattern
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Tue, 2 Jul 2024 16:37:57 +0000 (18:37 +0200)]
lib/port.c: getportent(): Align variables
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Tue, 2 Jul 2024 14:16:29 +0000 (16:16 +0200)]
lib/port.c: getttyuser(): Use pointer arithmetic to simplify
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Tue, 2 Jul 2024 13:05:21 +0000 (15:05 +0200)]
lib/port.c: getportent(): Use equivalent code to parse equally-formatted fields
The tty names field and the user names field have the same formatting:
a CSV terminated by a ':'. Thus, we can --and should-- use the same
exact code for parsing both.
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Tue, 2 Jul 2024 12:51:04 +0000 (14:51 +0200)]
lib/port.c: getportent(): Make sure the aren't too many fields in the CSV
Otherwise, the line is invalidly formatted, and we ignore it.
Detailed explanation:
There are two conditions on which we break out of the loops that precede
these added checks:
- j is too big (we've exhausted the space in the static arrays)
$ grep -r -e PORT_TTY -e PORT_IDS lib/port.*
lib/port.c: static char *ttys[PORT_TTY + 1]; /* some pointers to tty names */
lib/port.c: static char *users[PORT_IDS + 1]; /* some pointers to user ids */
lib/port.c: for (cp = buf, j = 0; j < PORT_TTY; j++) {
lib/port.c: if ((',' == *cp) && (j < PORT_IDS)) {
lib/port.h: * PORT_IDS - Allowable number of IDs per entry.
lib/port.h: * PORT_TTY - Allowable number of TTYs per entry.
lib/port.h:#define PORT_IDS 64
lib/port.h:#define PORT_TTY 64
- strpbrk(3) found a ':', which signals the end of the comma-sepatated
list, and the start of the next colon-separated field.
If the first character in the remainder of the string is not a ':', it
means we've exhausted the array size, but the CSV list was longer, so
we'd be truncating it. Consider the entire line invalid, and skip it.
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Tue, 2 Jul 2024 12:43:26 +0000 (14:43 +0200)]
lib/port.c: getportent(): Make sure there are at least 2 ':' in the line
Otherwise, the line is invalidly formatted, and we ignore it.
Closes: <https://github.com/shadow-maint/shadow/issues/1036>
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Tue, 2 Jul 2024 12:26:19 +0000 (14:26 +0200)]
lib/port.c: getportent(): Remove obvious comments
And do some style changes on the corresponding code.
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Tue, 2 Jul 2024 12:23:19 +0000 (14:23 +0200)]
lib/port.c: getportent(): Rename goto label
This label means we detected a bogus line, and want to skip it and jump
to the next one; rename it accordingly. 'again' seemed to say that it
was somehow looping on the same line.
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Tue, 2 Jul 2024 13:49:48 +0000 (15:49 +0200)]
lib/port.c: getttyuser(): Use goto to break out of nested loops
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Tue, 2 Jul 2024 12:03:27 +0000 (14:03 +0200)]
lib/port.c: getttyuser(): Remove dead code
port.pt_names cannot be NULL; it always points to the static array ttys.
$ grep -rn pt_names
lib/port.c:157: port.pt_names = ttys;
lib/port.c:159: port.pt_names[j] = cp;
lib/port.c:172: port.pt_names[j] = NULL;
lib/port.c:344: for (i = 0; NULL != port->pt_names[i]; i++) {
lib/port.c:345: if (portcmp (port->pt_names[i], tty) == 0) {
lib/port.c:350: if (port->pt_names[i] == 0) {
lib/port.h:39: * pt_names - pointer to array of device names in /dev/
lib/port.h:45: char **pt_names;
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Sun, 19 May 2024 00:05:16 +0000 (02:05 +0200)]
contrib/adduser.c: main(): Use strcpy/cat(3) instead of their pattern
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Sat, 18 May 2024 23:53:12 +0000 (01:53 +0200)]
contrib, lib/, src/, tests/: Use stpcpy(3) instead of its pattern
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Sat, 18 May 2024 19:38:24 +0000 (21:38 +0200)]
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>
Alejandro Colomar [Sat, 18 May 2024 21:45:46 +0000 (23:45 +0200)]
lib/sssd.c: Style fixes
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Sat, 18 May 2024 20:03:08 +0000 (22:03 +0200)]
src/login_nopam.c: login_access(): Simplify, calling strchr(3)
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Sat, 18 May 2024 23:00:21 +0000 (01:00 +0200)]
lib/getdef.c: def_load(): Use stp[c]spn() instead of their patterns
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Sat, 18 May 2024 18:41:30 +0000 (20:41 +0200)]
lib/string/strchr/: stp[c]spn(), strrspn(), strnul(): Add macros and functions
Often, a pointer is more useful than a length when calling these.
Link: <https://docs.oracle.com/cd/E86824_01/html/E54769/strrspn-3gen.html>
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Tue, 9 Jan 2024 20:44:05 +0000 (21:44 +0100)]
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>
Alejandro Colomar [Tue, 9 Jan 2024 20:39:43 +0000 (21:39 +0100)]
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>
Alejandro Colomar [Tue, 9 Jan 2024 20:22:30 +0000 (21:22 +0100)]
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>
Alejandro Colomar [Tue, 9 Jan 2024 20:21:00 +0000 (21:21 +0100)]
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>
Alejandro Colomar [Tue, 9 Jan 2024 20:17:13 +0000 (21:17 +0100)]
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>
Alejandro Colomar [Tue, 9 Jan 2024 19:54:38 +0000 (20:54 +0100)]
src/: Use get_[ug]id() where appropriate
Reviewed-by: "Serge E. Hallyn" <serge@hallyn.com>
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Tue, 9 Jan 2024 19:20:07 +0000 (20:20 +0100)]
lib/shadow.c: my_sgetspent(): Simplify error handling
Handle negative values as errors from a2sl(), and reuse its
error-handling code.
Cc: Iker Pedrosa <ipedrosa@redhat.com>
Reviewed-by: "Serge E. Hallyn" <serge@hallyn.com>
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Tue, 9 Jan 2024 19:21:39 +0000 (20:21 +0100)]
lib/shadow.c: my_sgetspent(): Remove dead code
spwd.sp_flag is an unsigned long, which can never be negative.
Reviewed-by: "Serge E. Hallyn" <serge@hallyn.com>
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Tue, 9 Jan 2024 19:09:58 +0000 (20:09 +0100)]
lib/shadow.c: my_sgetspent(): Merge 'else {if}' into 'else if'
This reduces indentation.
Reviewed-by: "Serge E. Hallyn" <serge@hallyn.com>
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Tue, 9 Jan 2024 19:04:43 +0000 (20:04 +0100)]
lib/sgetspent.c: sgetspent(): Simplify, by calling a2sl() instead of str2sl()
Reviewed-by: "Serge E. Hallyn" <serge@hallyn.com>
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Tue, 9 Jan 2024 19:03:58 +0000 (20:03 +0100)]
lib/limits.c: setup_limits(): Simplify, by calling str2i(mode_t, ) instead of str2ul()
Reviewed-by: "Serge E. Hallyn" <serge@hallyn.com>
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Tue, 9 Jan 2024 19:03:33 +0000 (20:03 +0100)]
lib/limits.c: setup_limits(): Simplify, by calling str2si() instead of str2sl()
Reviewed-by: "Serge E. Hallyn" <serge@hallyn.com>
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Tue, 9 Jan 2024 19:03:16 +0000 (20:03 +0100)]
lib/limits.c: setup_limits(): Simplify, by calling a2si() instead of str2sl()
Reviewed-by: "Serge E. Hallyn" <serge@hallyn.com>
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Tue, 9 Jan 2024 19:02:38 +0000 (20:02 +0100)]
lib/limits.c: set_umask(): Simplify, by calling str2i(mode_t, ) instead of str2ul()
Reviewed-by: "Serge E. Hallyn" <serge@hallyn.com>
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Tue, 9 Jan 2024 19:01:57 +0000 (20:01 +0100)]
lib/limits.c: set_prio(): Simplify, by calling str2si() instead of str2sl()
Reviewed-by: "Serge E. Hallyn" <serge@hallyn.com>
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Tue, 9 Jan 2024 19:01:09 +0000 (20:01 +0100)]
lib/getdef.c: getdef_long(): Simplify, by calling a2sl() instead of str2sl()
Reviewed-by: "Serge E. Hallyn" <serge@hallyn.com>
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Tue, 9 Jan 2024 19:00:03 +0000 (20:00 +0100)]
lib/getdef.c: getdef_unum(): Fix wrong limit check
The limit, since it's an unsigned int, should have been UINT_MAX, not
INT_MAX. By calling a2ui() we can fix that and simplify too.
Reviewed-by: "Serge E. Hallyn" <serge@hallyn.com>
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Tue, 9 Jan 2024 18:58:02 +0000 (19:58 +0100)]
lib/getdef.c: getdef_num(): Simplify, by calling a2si() instead of str2sl()
Reviewed-by: "Serge E. Hallyn" <serge@hallyn.com>
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Sun, 30 Jun 2024 22:06:48 +0000 (00:06 +0200)]
Remove groups(1)
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Wed, 29 May 2024 12:41:45 +0000 (14:41 +0200)]
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>
Alejandro Colomar [Fri, 31 May 2024 16:30:16 +0000 (18:30 +0200)]
lib/idmapping.c: Use long constants in prctl(2), and remove 0s
The prctl(2) system-call wrapper is implemented as a variadic function.
This makes it important to pass arguments to it of the right type (and
more importantly of the right width), to avoid undefined behavior.
While at it, check errors with ==-1, not <0, which is more explicit.
Also, PR_SET_KEEPCAPS(2const) doesn't need all arguments, so it can be
called with just two of them; remove unnecessary 0s.
See-also: prctl(2), PR_SET_KEEPCAPS(2const)
Link: <https://lore.kernel.org/linux-man/ddbdyaiptesjalgfmztxideej67e3yaob7ucsmbf6qvriwxiif@dohhxrqgwhrf/T/#med306b5b003f9cc7cc2de69fcdd7ee2d056d0954>
Cc: Xi Ruoyao <xry111@xry111.site>
Cc: Lukas Slebodnik <lslebodn@fedoraproject.org>
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Sun, 30 Jun 2024 22:24:40 +0000 (00:24 +0200)]
lib/attr.h: Use C23-style attributes
They're stricter. The GNU attributes are too lazy, and can be misused
more easily. Also, mixing both has its own problems.
Link: <https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108796>
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Sun, 30 Jun 2024 21:55:56 +0000 (23:55 +0200)]
lib/gshadow.c: Use XREALLOC() instead of silently continuing on ENOMEM
We should do better, and correctly handle errors, since this is library
code. However, I'm lazy right now, so let's die hard, and let us
improve this later.
Link: <https://github.com/shadow-maint/shadow/pull/991#discussion_r1660308154>
Reported-by: Serge Hallyn <serge@hallyn.com>
Signed-off-by: Alejandro Colomar <alx@kernel.org>
Alejandro Colomar [Sun, 30 Jun 2024 21:50:31 +0000 (23:50 +0200)]
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>
Alejandro Colomar [Sat, 29 Jun 2024 16:43:47 +0000 (18:43 +0200)]
lib/: Use [[gnu::alloc_size(...)]] on allocation functions
Suggested-by: Martin Uecker <uecker@tugraz.at>
Signed-off-by: Alejandro Colomar <alx@kernel.org>