From b35b861bb10e18070b5951cf893be6858b97e1d0 Mon Sep 17 00:00:00 2001 From: Anthony Iliopoulos Date: Tue, 21 Jan 2020 20:05:36 +0100 Subject: [PATCH] util-linux: update to 2.35. --- srcpkgs/util-linux/patches/chsh.patch | 89 --------------------------- srcpkgs/util-linux/template | 6 +- 2 files changed, 3 insertions(+), 92 deletions(-) delete mode 100644 srcpkgs/util-linux/patches/chsh.patch diff --git a/srcpkgs/util-linux/patches/chsh.patch b/srcpkgs/util-linux/patches/chsh.patch deleted file mode 100644 index d2cbd0d8ddf..00000000000 --- a/srcpkgs/util-linux/patches/chsh.patch +++ /dev/null @@ -1,89 +0,0 @@ -Patch by Quentin Rameau : -use getpwuid_r since chsh uses readline (which does tilde expansion) -can overwrite the getpwuid buffer on musl in the meantime. - -https://inbox.vuxu.org/voidlinux/20190922131237.93849-1-quinq@fifth.space/ -https://lore.kernel.org/util-linux/20190921185021.10568-1-quinq@fifth.space/ - ---- include/pwdutils.h -+++ include/pwdutils.h -@@ -5,6 +5,7 @@ - #include - - extern struct passwd *xgetpwnam(const char *username, char **pwdbuf); -+extern struct passwd *xgetpwuid(uid_t uid, char **pwdbuf); - extern char *xgetlogin(void); - - #endif /* UTIL_LINUX_PWDUTILS_H */ ---- lib/pwdutils.c -+++ lib/pwdutils.c -@@ -36,6 +36,34 @@ failed: - return NULL; - } - -+struct passwd *xgetpwuid(uid_t uid, char **pwdbuf) -+{ -+ struct passwd *pwd = NULL, *res = NULL; -+ int rc; -+ -+ if (!pwdbuf) -+ return NULL; -+ -+ *pwdbuf = xmalloc(UL_GETPW_BUFSIZ); -+ pwd = xcalloc(1, sizeof(struct passwd)); -+ -+ errno = 0; -+ rc = getpwuid_r(uid, pwd, *pwdbuf, UL_GETPW_BUFSIZ, &res); -+ if (rc != 0) { -+ errno = rc; -+ goto failed; -+ } -+ if (!res) { -+ errno = EINVAL; -+ goto failed; -+ } -+ return pwd; -+failed: -+ free(pwd); -+ free(*pwdbuf); -+ return NULL; -+} -+ - char *xgetlogin(void) - { - struct passwd *pw = NULL; ---- login-utils/chsh.c -+++ login-utils/chsh.c -@@ -38,6 +38,7 @@ - #include "islocal.h" - #include "nls.h" - #include "pathnames.h" -+#include "pwdutils.h" - #include "setpwnam.h" - #include "strutils.h" - #include "xalloc.h" -@@ -253,7 +254,7 @@ static void check_shell(const char *shell) - - int main(int argc, char **argv) - { -- char *oldshell; -+ char *oldshell, *pwbuf; - int nullshell = 0; - const uid_t uid = getuid(); - struct sinfo info = { NULL }; -@@ -267,12 +268,12 @@ int main(int argc, char **argv) - - parse_argv(argc, argv, &info); - if (!info.username) { -- pw = getpwuid(uid); -+ pw = xgetpwuid(uid, &pwbuf); - if (!pw) - errx(EXIT_FAILURE, _("you (user %d) don't exist."), - uid); - } else { -- pw = getpwnam(info.username); -+ pw = xgetpwnam(info.username, &pwbuf); - if (!pw) - errx(EXIT_FAILURE, _("user \"%s\" does not exist."), - info.username); - diff --git a/srcpkgs/util-linux/template b/srcpkgs/util-linux/template index 27eb544860d..c74b597ca81 100644 --- a/srcpkgs/util-linux/template +++ b/srcpkgs/util-linux/template @@ -1,7 +1,7 @@ # Template file for 'util-linux' pkgname=util-linux -version=2.34 -revision=4 +version=2.35 +revision=1 hostmakedepends="automake bison gettext-devel libtool pkg-config xz" makedepends="libcap-ng-devel pam-devel readline-devel zlib-devel" checkdepends="ncurses" # Some tests require terminfo-entries @@ -10,7 +10,7 @@ maintainer="Enno Boland " license="GPL-2.0-or-later" homepage="https://www.kernel.org/pub/linux/utils/util-linux/" distfiles="${KERNEL_SITE}/utils/${pkgname}/v${version}/${pkgname}-${version}.tar.xz" -checksum=743f9d0c7252b6db246b659c1e1ce0bd45d8d4508b4dfa427bbb4a3e9b9f62b5 +checksum=b3081b560268c1ec3367e035234e91616fa7923a0afc2b1c80a2a6d8b9dfe2c9 # Create uuidd system account for uuidd. system_accounts="_uuidd"