commit: 35dcfcc83b7e325672f9167b5417d67deb4e3270 Author: Mike Gilbert <floppym <AT> gentoo <DOT> org> AuthorDate: Sun Aug 11 16:27:41 2019 +0000 Commit: Mike Gilbert <floppym <AT> gentoo <DOT> org> CommitDate: Sun Aug 11 16:27:41 2019 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=35dcfcc8
sys-apps/systemd: backport fixes Closes: https://bugs.gentoo.org/691232 Closes: https://bugs.gentoo.org/691280 Closes: https://bugs.gentoo.org/691502 Package-Manager: Portage-2.3.71, Repoman-2.3.16_p24 Signed-off-by: Mike Gilbert <floppym <AT> gentoo.org> sys-apps/systemd/files/243-rc1-cryptsetup.patch | 148 +++++++++++++++++++++ ...243-rc1-revert-logind-remove-unused-check.patch | 31 +++++ .../systemd/files/243-rc1-udev-properties.patch | 53 ++++++++ ...243_rc1-r1.ebuild => systemd-243_rc1-r2.ebuild} | 3 + 4 files changed, 235 insertions(+) diff --git a/sys-apps/systemd/files/243-rc1-cryptsetup.patch b/sys-apps/systemd/files/243-rc1-cryptsetup.patch new file mode 100644 index 00000000000..e922d4d29cb --- /dev/null +++ b/sys-apps/systemd/files/243-rc1-cryptsetup.patch @@ -0,0 +1,148 @@ +From f4ea8432e67110b73b07dd0e47a5339d83b350fb Mon Sep 17 00:00:00 2001 +From: Lennart Poettering <[email protected]> +Date: Wed, 31 Jul 2019 09:38:15 +0200 +Subject: [PATCH] cryptsetup-generator: fix coverity issue + +Fixes coverity issue 1403772 +--- + src/cryptsetup/cryptsetup-generator.c | 16 ++++++++-------- + 1 file changed, 8 insertions(+), 8 deletions(-) + +diff --git a/src/cryptsetup/cryptsetup-generator.c b/src/cryptsetup/cryptsetup-generator.c +index c51bb9ae189..960f4762b7d 100644 +--- a/src/cryptsetup/cryptsetup-generator.c ++++ b/src/cryptsetup/cryptsetup-generator.c +@@ -46,30 +46,30 @@ STATIC_DESTRUCTOR_REGISTER(arg_disks, hashmap_freep); + STATIC_DESTRUCTOR_REGISTER(arg_default_options, freep); + STATIC_DESTRUCTOR_REGISTER(arg_default_keyfile, freep); + +-static int split_keyspec(const char *keyspec, char **keyfile, char **keydev) { ++static int split_keyspec(const char *keyspec, char **ret_keyfile, char **ret_keydev) { + _cleanup_free_ char *kfile = NULL, *kdev = NULL; +- char *c; ++ const char *c; + + assert(keyspec); +- assert(keyfile); +- assert(keydev); ++ assert(ret_keyfile); ++ assert(ret_keydev); + + c = strrchr(keyspec, ':'); + if (c) { + kfile = strndup(keyspec, c-keyspec); + kdev = strdup(c + 1); +- if (!*kfile || !*kdev) ++ if (!kfile || !kdev) + return log_oom(); + } else { + /* No keydev specified */ + kfile = strdup(keyspec); + kdev = NULL; +- if (!*kfile) ++ if (!kfile) + return log_oom(); + } + +- *keyfile = TAKE_PTR(kfile); +- *keydev = TAKE_PTR(kdev); ++ *ret_keyfile = TAKE_PTR(kfile); ++ *ret_keydev = TAKE_PTR(kdev); + + return 0; + } +From 5d2100dc4c32abbce4109e75cbfbbef6e1b2b7b1 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <[email protected]> +Date: Thu, 1 Aug 2019 08:13:13 +0200 +Subject: [PATCH] cryptsetup: use unabbrieviated variable names + +Now that "ret_" has been added to the output variables, we can name +the internal variables without artificial abbrevs. +--- + src/cryptsetup/cryptsetup-generator.c | 18 +++++++++--------- + 1 file changed, 9 insertions(+), 9 deletions(-) + +diff --git a/src/cryptsetup/cryptsetup-generator.c b/src/cryptsetup/cryptsetup-generator.c +index 960f4762b7d..84483143945 100644 +--- a/src/cryptsetup/cryptsetup-generator.c ++++ b/src/cryptsetup/cryptsetup-generator.c +@@ -47,7 +47,7 @@ STATIC_DESTRUCTOR_REGISTER(arg_default_options, freep); + STATIC_DESTRUCTOR_REGISTER(arg_default_keyfile, freep); + + static int split_keyspec(const char *keyspec, char **ret_keyfile, char **ret_keydev) { +- _cleanup_free_ char *kfile = NULL, *kdev = NULL; ++ _cleanup_free_ char *keyfile = NULL, *keydev = NULL; + const char *c; + + assert(keyspec); +@@ -56,20 +56,20 @@ static int split_keyspec(const char *keyspec, char **ret_keyfile, char **ret_key + + c = strrchr(keyspec, ':'); + if (c) { +- kfile = strndup(keyspec, c-keyspec); +- kdev = strdup(c + 1); +- if (!kfile || !kdev) ++ keyfile = strndup(keyspec, c-keyspec); ++ keydev = strdup(c + 1); ++ if (!keyfile || !keydev) + return log_oom(); + } else { + /* No keydev specified */ +- kfile = strdup(keyspec); +- kdev = NULL; +- if (!kfile) ++ keyfile = strdup(keyspec); ++ keydev = NULL; ++ if (!keyfile) + return log_oom(); + } + +- *ret_keyfile = TAKE_PTR(kfile); +- *ret_keydev = TAKE_PTR(kdev); ++ *ret_keyfile = TAKE_PTR(keyfile); ++ *ret_keydev = TAKE_PTR(keydev); + + return 0; + } +From fef716b28be6e866b8afe995805d5ebe2af6bbfa Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <[email protected]> +Date: Thu, 1 Aug 2019 08:15:43 +0200 +Subject: [PATCH] cryptsetup: don't assert on variable which is optional + +https://github.com/systemd/systemd/commit/50d2eba27b9bfc77ef6b40e5721713846815418b#commitcomment-34519739 + +In add_crypttab_devices() split_keyspec is called on the keyfile argument, +which may be NULL. +--- + src/cryptsetup/cryptsetup-generator.c | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/src/cryptsetup/cryptsetup-generator.c b/src/cryptsetup/cryptsetup-generator.c +index 84483143945..4815ded753f 100644 +--- a/src/cryptsetup/cryptsetup-generator.c ++++ b/src/cryptsetup/cryptsetup-generator.c +@@ -50,10 +50,14 @@ static int split_keyspec(const char *keyspec, char **ret_keyfile, char **ret_key + _cleanup_free_ char *keyfile = NULL, *keydev = NULL; + const char *c; + +- assert(keyspec); + assert(ret_keyfile); + assert(ret_keydev); + ++ if (!keyspec) { ++ *ret_keyfile = *ret_keydev = NULL; ++ return 0; ++ } ++ + c = strrchr(keyspec, ':'); + if (c) { + keyfile = strndup(keyspec, c-keyspec); +@@ -567,7 +571,7 @@ static int add_crypttab_devices(void) { + } + + for (;;) { +- _cleanup_free_ char *line = NULL, *name = NULL, *device = NULL, *keydev = NULL, *keyfile = NULL, *keyspec = NULL, *options = NULL; ++ _cleanup_free_ char *line = NULL, *name = NULL, *device = NULL, *keyspec = NULL, *options = NULL, *keyfile = NULL, *keydev = NULL; + crypto_device *d = NULL; + char *l, *uuid; + int k; diff --git a/sys-apps/systemd/files/243-rc1-revert-logind-remove-unused-check.patch b/sys-apps/systemd/files/243-rc1-revert-logind-remove-unused-check.patch new file mode 100644 index 00000000000..30a20c17661 --- /dev/null +++ b/sys-apps/systemd/files/243-rc1-revert-logind-remove-unused-check.patch @@ -0,0 +1,31 @@ +From 18f689b1fa35c53580da62bfce875fb15d20d448 Mon Sep 17 00:00:00 2001 +From: Yu Watanabe <[email protected]> +Date: Sun, 4 Aug 2019 05:43:34 +0900 +Subject: [PATCH] Revert "logind: remove unused check" + +This reverts commit f2330acda408a34451d5e15380fcdd225a672473. + +Fixes #13255. +--- + src/login/logind-action.c | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/src/login/logind-action.c b/src/login/logind-action.c +index fa92f4870a2..140953eec10 100644 +--- a/src/login/logind-action.c ++++ b/src/login/logind-action.c +@@ -61,8 +61,12 @@ int manager_handle_action( + int r; + + assert(m); +- /* We should be called only with valid actions different than HANDLE_IGNORE. */ +- assert(handle > HANDLE_IGNORE && handle < _HANDLE_ACTION_MAX); ++ ++ /* If the key handling is turned off, don't do anything */ ++ if (handle == HANDLE_IGNORE) { ++ log_debug("Refusing operation, as it is turned off."); ++ return 0; ++ } + + if (inhibit_key == INHIBIT_HANDLE_LID_SWITCH) { + /* If the last system suspend or startup is too close, diff --git a/sys-apps/systemd/files/243-rc1-udev-properties.patch b/sys-apps/systemd/files/243-rc1-udev-properties.patch new file mode 100644 index 00000000000..5e2ffa1868a --- /dev/null +++ b/sys-apps/systemd/files/243-rc1-udev-properties.patch @@ -0,0 +1,53 @@ +From 41c81c4a626fda0969fc09ddeb8addb7aae6e4d9 Mon Sep 17 00:00:00 2001 +From: Yu Watanabe <[email protected]> +Date: Sun, 4 Aug 2019 06:08:06 +0900 +Subject: [PATCH] udev: do not try to import properties on commented out lines + +Fixes #13257. +--- + src/udev/udev-rules.c | 10 ++++++++-- + 1 file changed, 8 insertions(+), 2 deletions(-) + +diff --git a/src/udev/udev-rules.c b/src/udev/udev-rules.c +index 3473a7eb7e5..1642f105354 100644 +--- a/src/udev/udev-rules.c ++++ b/src/udev/udev-rules.c +@@ -1401,8 +1401,10 @@ static int get_property_from_string(char *line, char **ret_key, char **ret_value + key = skip_leading_chars(line, NULL); + + /* comment or empty line */ +- if (IN_SET(key[0], '#', '\0')) ++ if (IN_SET(key[0], '#', '\0')) { ++ *ret_key = *ret_value = NULL; + return 0; ++ } + + /* split key/value */ + val = strchr(key, '='); +@@ -1429,7 +1431,7 @@ static int get_property_from_string(char *line, char **ret_key, char **ret_value + + *ret_key = key; + *ret_value = val; +- return 0; ++ return 1; + } + + static int import_parent_into_properties(sd_device *dev, const char *filter) { +@@ -1681,6 +1683,8 @@ static int udev_rule_apply_token_to_event( + line); + continue; + } ++ if (r == 0) ++ continue; + + r = device_add_property(dev, key, value); + if (r < 0) +@@ -1719,6 +1723,8 @@ static int udev_rule_apply_token_to_event( + line); + continue; + } ++ if (r == 0) ++ continue; + + r = device_add_property(dev, key, value); + if (r < 0) diff --git a/sys-apps/systemd/systemd-243_rc1-r1.ebuild b/sys-apps/systemd/systemd-243_rc1-r2.ebuild similarity index 98% rename from sys-apps/systemd/systemd-243_rc1-r1.ebuild rename to sys-apps/systemd/systemd-243_rc1-r2.ebuild index 34b6587a0db..d67b45ec87d 100644 --- a/sys-apps/systemd/systemd-243_rc1-r1.ebuild +++ b/sys-apps/systemd/systemd-243_rc1-r2.ebuild @@ -186,6 +186,9 @@ src_prepare() { # Add local patches here PATCHES+=( "${FILESDIR}"/243-rc1-analyze.patch + "${FILESDIR}"/243-rc1-cryptsetup.patch + "${FILESDIR}"/243-rc1-revert-logind-remove-unused-check.patch + "${FILESDIR}"/243-rc1-udev-properties.patch ) if ! use vanilla; then
