From a8b4788c53ff663b65fb6db86ff4fa2b9bf35e00 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Fri, 10 Dec 2021 04:22:15 +0000 Subject: [PATCH] import shadow-utils-4.6-16.el8 --- SOURCES/shadow-4.6-getsubids.patch | 244 ++++++++++++++++++ ...x-sigsegv-when-passwd-does-not-exist.patch | 13 + SPECS/shadow-utils.spec | 14 +- 3 files changed, 270 insertions(+), 1 deletion(-) create mode 100644 SOURCES/shadow-4.6-getsubids.patch create mode 100644 SOURCES/shadow-4.6-groupdel-fix-sigsegv-when-passwd-does-not-exist.patch diff --git a/SOURCES/shadow-4.6-getsubids.patch b/SOURCES/shadow-4.6-getsubids.patch new file mode 100644 index 0000000..12030cb --- /dev/null +++ b/SOURCES/shadow-4.6-getsubids.patch @@ -0,0 +1,244 @@ +diff -up shadow-4.6/man/getsubids.1.xml.getsubids shadow-4.6/man/getsubids.1.xml +--- shadow-4.6/man/getsubids.1.xml.getsubids 2021-12-09 10:40:50.730275761 +0100 ++++ shadow-4.6/man/getsubids.1.xml 2021-12-09 10:40:50.730275761 +0100 +@@ -0,0 +1,141 @@ ++ ++ ++ ++]> ++ ++ ++ ++ ++ Iker ++ Pedrosa ++ Creation, 2021 ++ ++ ++ ++ getsubids ++ 1 ++ User Commands ++ shadow-utils ++ &SHADOW_UTILS_VERSION; ++ ++ ++ getsubids ++ get the subordinate id ranges for a user ++ ++ ++ ++ ++ getsubids ++ ++ options ++ ++ ++ USER ++ ++ ++ ++ ++ ++ DESCRIPTION ++ ++ The getsubids command lists the subordinate user ID ++ ranges for a given user. The subordinate group IDs can be listed using ++ the option. ++ ++ ++ ++ ++ OPTIONS ++ ++ The options which apply to the getsubids command are: ++ ++ ++ ++ ++ ++ ++ ++ ++ List the subordinate group ID ranges. ++ ++ ++ ++ ++ ++ ++ ++ EXAMPLE ++ ++ For example, to obtain the subordinate UIDs of the testuser: ++ ++ ++ ++$ getsubids testuser ++0: testuser 100000 65536 ++ ++ ++ ++ This command output provides (in order from left to right) the list ++ index, username, UID range start, and number of UIDs in range. ++ ++ ++ ++ ++ SEE ALSO ++ ++ ++ login.defs5 ++ , ++ ++ newgidmap1 ++ , ++ ++ newuidmap1 ++ , ++ ++ subgid5 ++ , ++ ++ subuid5 ++ , ++ ++ useradd8 ++ , ++ ++ userdel8 ++ . ++ ++ usermod8 ++ , ++ ++ ++ +diff -up shadow-4.6/man/Makefile.am.getsubids shadow-4.6/man/Makefile.am +--- shadow-4.6/man/Makefile.am.getsubids 2018-04-29 18:42:37.000000000 +0200 ++++ shadow-4.6/man/Makefile.am 2021-12-09 10:40:50.730275761 +0100 +@@ -59,6 +59,7 @@ man_MANS += $(man_nopam) + endif + + man_subids = \ ++ man1/getsubids.1 \ + man1/newgidmap.1 \ + man1/newuidmap.1 \ + man5/subgid.5 \ +@@ -77,6 +78,7 @@ man_XMANS = \ + expiry.1.xml \ + faillog.5.xml \ + faillog.8.xml \ ++ getsubids.1.xml \ + gpasswd.1.xml \ + groupadd.8.xml \ + groupdel.8.xml \ +diff -up shadow-4.6/src/getsubids.c.getsubids shadow-4.6/src/getsubids.c +--- shadow-4.6/src/getsubids.c.getsubids 2021-12-09 10:40:50.730275761 +0100 ++++ shadow-4.6/src/getsubids.c 2021-12-09 10:40:50.730275761 +0100 +@@ -0,0 +1,46 @@ ++#include ++#include ++#include ++#include "subid.h" ++#include "prototypes.h" ++ ++const char *Prog; ++FILE *shadow_logfd = NULL; ++ ++void usage(void) ++{ ++ fprintf(stderr, "Usage: %s [-g] user\n", Prog); ++ fprintf(stderr, " list subuid ranges for user\n"); ++ fprintf(stderr, " pass -g to list subgid ranges\n"); ++ exit(EXIT_FAILURE); ++} ++ ++int main(int argc, char *argv[]) ++{ ++ int i, count=0; ++ struct subid_range *ranges; ++ const char *owner; ++ ++ Prog = Basename (argv[0]); ++ shadow_logfd = stderr; ++ if (argc < 2) ++ usage(); ++ owner = argv[1]; ++ if (argc == 3 && strcmp(argv[1], "-g") == 0) { ++ owner = argv[2]; ++ count = get_subgid_ranges(owner, &ranges); ++ } else if (argc == 2 && strcmp(argv[1], "-h") == 0) { ++ usage(); ++ } else { ++ count = get_subuid_ranges(owner, &ranges); ++ } ++ if (!ranges) { ++ fprintf(stderr, "Error fetching ranges\n"); ++ exit(1); ++ } ++ for (i = 0; i < count; i++) { ++ printf("%d: %s %lu %lu\n", i, owner, ++ ranges[i].start, ranges[i].count); ++ } ++ return 0; ++} +diff -up shadow-4.6/src/Makefile.am.getsubids shadow-4.6/src/Makefile.am +--- shadow-4.6/src/Makefile.am.getsubids 2021-12-09 10:40:50.710275627 +0100 ++++ shadow-4.6/src/Makefile.am 2021-12-09 10:45:04.465985510 +0100 +@@ -140,8 +140,8 @@ if WITH_TCB + endif + + if ENABLE_SUBIDS +-noinst_PROGRAMS += list_subid_ranges \ +- get_subid_owners \ ++bin_PROGRAMS += getsubids ++noinst_PROGRAMS += get_subid_owners \ + new_subid_range \ + free_subid_range \ + check_subid_range +@@ -156,13 +156,13 @@ MISCLIBS = \ + $(LIBCRYPT) \ + $(LIBTCB) + +-list_subid_ranges_LDADD = \ ++getsubids_LDADD = \ + $(top_builddir)/lib/libshadow.la \ + $(top_builddir)/libmisc/libmisc.la \ + $(top_builddir)/libsubid/libsubid.la \ + $(MISCLIBS) -ldl + +-list_subid_ranges_CPPFLAGS = \ ++getsubids_CPPFLAGS = \ + -I$(top_srcdir)/lib \ + -I$(top_srcdir)/libmisc \ + -I$(top_srcdir)/libsubid diff --git a/SOURCES/shadow-4.6-groupdel-fix-sigsegv-when-passwd-does-not-exist.patch b/SOURCES/shadow-4.6-groupdel-fix-sigsegv-when-passwd-does-not-exist.patch new file mode 100644 index 0000000..658156a --- /dev/null +++ b/SOURCES/shadow-4.6-groupdel-fix-sigsegv-when-passwd-does-not-exist.patch @@ -0,0 +1,13 @@ +diff -up shadow-4.9/libmisc/prefix_flag.c.groupdel-fix-sigsegv-when-passwd-does-not-exist shadow-4.9/libmisc/prefix_flag.c +--- shadow-4.9/libmisc/prefix_flag.c.groupdel-fix-sigsegv-when-passwd-does-not-exist 2021-11-19 09:21:36.997091941 +0100 ++++ shadow-4.9/libmisc/prefix_flag.c 2021-11-19 09:22:19.001341010 +0100 +@@ -288,6 +288,9 @@ extern struct passwd* prefix_getpwent() + if(!passwd_db_file) { + return getpwent(); + } ++ if (!fp_pwent) { ++ return NULL; ++ } + return fgetpwent(fp_pwent); + } + extern void prefix_endpwent() diff --git a/SPECS/shadow-utils.spec b/SPECS/shadow-utils.spec index b07c1b2..8426b53 100644 --- a/SPECS/shadow-utils.spec +++ b/SPECS/shadow-utils.spec @@ -1,7 +1,7 @@ Summary: Utilities for managing accounts and shadow password files Name: shadow-utils Version: 4.6 -Release: 15%{?dist} +Release: 16%{?dist} Epoch: 2 URL: http://pkg-shadow.alioth.debian.org/ Source0: https://github.com/shadow-maint/shadow/releases/download/%{version}/shadow-%{version}.tar.xz @@ -88,6 +88,10 @@ Patch59: shadow-4.6-useradd_dont_try_to_create_0_subuids.patch Patch60: shadow-4.6-install_subid_h.patch # https://github.com/shadow-maint/shadow/commit/fa986b1d73605ecca54a4f19249227aeab827bf6 Patch61: shadow-4.6-respect_enable_static_no.patch +# https://github.com/shadow-maint/shadow/commit/3b6ccf642c6bb2b7db087f09ee563ae9318af734 +Patch62: shadow-4.6-getsubids.patch +# https://github.com/shadow-maint/shadow/commit/a757b458ffb4fb9a40bcbb4f7869449431c67f83 +Patch63: shadow-4.6-groupdel-fix-sigsegv-when-passwd-does-not-exist.patch License: BSD and GPLv2+ Group: System Environment/Base @@ -184,6 +188,8 @@ Development files for shadow-utils-subid. %patch59 -p1 -b .useradd_dont_try_to_create_0_subuids %patch60 -p1 -b .install_subid_h %patch61 -p1 -b .respect_enable_static_no +%patch62 -p1 -b .getsubids +%patch63 -p1 -b .groupdel-fix-sigsegv-when-passwd-does-not-exist iconv -f ISO88591 -t utf-8 doc/HOWTO > doc/HOWTO.utf8 cp -f doc/HOWTO.utf8 doc/HOWTO @@ -346,12 +352,18 @@ rm -f $RPM_BUILD_ROOT/%{_libdir}/libsubid.la %files subid %{_libdir}/libsubid.so.* +%{_bindir}/getsubids +%{_mandir}/man1/getsubids.1* %files subid-devel %{includesubiddir}/subid.h %{_libdir}/libsubid.so %changelog +* Thu Dec 9 2021 Iker Pedrosa - 2:4.6-16 +- getsubids: provide system binary and man page. Resolves: #2013016 +- groupdel: fix SIGSEGV when passwd does not exist. Resolves: #1986782 + * Tue Oct 19 2021 Iker Pedrosa - 2:4.6-15 - Creation of subid and subid-devel subpackages (#2013009) - libsubid: creation and nsswitch support