diff options
Diffstat (limited to 'sys-apps/util-linux/files')
4 files changed, 163 insertions, 0 deletions
diff --git a/sys-apps/util-linux/files/util-linux-2.37.1-agetty_ctrl-c_erase.patch b/sys-apps/util-linux/files/util-linux-2.37.1-agetty_ctrl-c_erase.patch new file mode 100644 index 000000000000..4828fd449f95 --- /dev/null +++ b/sys-apps/util-linux/files/util-linux-2.37.1-agetty_ctrl-c_erase.patch @@ -0,0 +1,50 @@ +From 6eb1c01e9dd25a73100f06db37190c63fd57d4d9 Mon Sep 17 00:00:00 2001 +From: Karel Zak <kzak@redhat.com> +Date: Fri, 30 Jul 2021 11:50:46 +0200 +Subject: [PATCH] agetty: use CTRL+C to erase username + +aggety(8) from the beginning ignores ^C (the small exception was +between 2.32 and 2.34 when this char has been misinterpreted). + +This patch forces agetty to interpret ^C like ^U, it means to +erase the user's input and wait for a completely new username. +The small difference is that for ^C it does not set 'kill character'. + +This change does not affect serial lines where ^C is still ignored like +in previous decades. I'd like to avoid any regression as I have +no clue if any serial lines do not send this control char in some +context ... + +Fixes: https://github.com/karelzak/util-linux/issues/1399 +References: https://github.com/karelzak/util-linux/issues/1046 +Signed-off-by: Karel Zak <kzak@redhat.com> +--- + term-utils/agetty.c | 8 +++++--- + 1 file changed, 5 insertions(+), 3 deletions(-) + +diff --git a/term-utils/agetty.c b/term-utils/agetty.c +index 3b3d5101a..d072d64d3 100644 +--- a/term-utils/agetty.c ++++ b/term-utils/agetty.c +@@ -2267,6 +2267,11 @@ static char *get_logname(struct issue *ie, struct options *op, struct termios *t + break; + case CTL('U'): + cp->kill = ascval; /* set kill character */ ++ /* fallthrough */ ++ case CTL('C'): ++ if (key == CTL('C') && !(op->flags & F_VCONSOLE)) ++ /* Ignore CTRL+C on serial line */ ++ break; + while (bp > logname) { + if ((tp->c_lflag & ECHO) == 0) + write_all(1, erase[cp->parity], 3); +@@ -2275,9 +2280,6 @@ static char *get_logname(struct issue *ie, struct options *op, struct termios *t + break; + case CTL('D'): + exit(EXIT_SUCCESS); +- case CTL('C'): +- /* Ignore */ +- break; + default: + if ((size_t)(bp - logname) >= sizeof(logname) - 1) + log_err(_("%s: input overrun"), op->tty); diff --git a/sys-apps/util-linux/files/util-linux-2.37.1-ipcutils_calloc_check.patch b/sys-apps/util-linux/files/util-linux-2.37.1-ipcutils_calloc_check.patch new file mode 100644 index 000000000000..44490ce1bd06 --- /dev/null +++ b/sys-apps/util-linux/files/util-linux-2.37.1-ipcutils_calloc_check.patch @@ -0,0 +1,25 @@ +From 86d5de52d43501711586054e7b601fbc57403085 Mon Sep 17 00:00:00 2001 +From: Karel Zak <kzak@redhat.com> +Date: Tue, 27 Jul 2021 11:58:31 +0200 +Subject: [PATCH] sys-utils/ipcutils: be careful when call calloc() for uint64 + nmembs + +Fix: https://github.com/karelzak/util-linux/issues/1395 +Signed-off-by: Karel Zak <kzak@redhat.com> +--- + sys-utils/ipcutils.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/sys-utils/ipcutils.c b/sys-utils/ipcutils.c +index e784c4dcb9..18868cfd38 100644 +--- a/sys-utils/ipcutils.c ++++ b/sys-utils/ipcutils.c +@@ -218,7 +218,7 @@ static void get_sem_elements(struct sem_data *p) + { + size_t i; + +- if (!p || !p->sem_nsems || p->sem_perm.id < 0) ++ if (!p || !p->sem_nsems || p->sem_nsems > SIZE_MAX || p->sem_perm.id < 0) + return; + + p->elements = xcalloc(p->sem_nsems, sizeof(struct sem_elem)); diff --git a/sys-apps/util-linux/files/util-linux-2.37.1-libmount_setgroups_fix.patch b/sys-apps/util-linux/files/util-linux-2.37.1-libmount_setgroups_fix.patch new file mode 100644 index 000000000000..ebde207986b9 --- /dev/null +++ b/sys-apps/util-linux/files/util-linux-2.37.1-libmount_setgroups_fix.patch @@ -0,0 +1,38 @@ +From 420e914c4cc4c2ba34fd75790ea194d7f4a47d2c Mon Sep 17 00:00:00 2001 +From: Karel Zak <kzak@redhat.com> +Date: Thu, 29 Jul 2021 11:50:48 +0200 +Subject: [PATCH] libmount: fix setgroups() use + +* keep process in single supplementary group, which is the real group ID for the process + +* make sure we have rights to call setgroups(), requires group permissions + +Fixes: https://github.com/karelzak/util-linux/issues/1398 +Signed-off-by: Karel Zak <kzak@redhat.com> +--- + include/c.h | 6 ++++-- + 1 file changed, 4 insertions(+), 2 deletions(-) + +diff --git a/include/c.h b/include/c.h +index c1e4c5ffc..a4504e3ba 100644 +--- a/include/c.h ++++ b/include/c.h +@@ -340,14 +340,16 @@ static inline size_t get_hostname_max(void) + + static inline int drop_permissions(void) + { ++ gid_t newgid = getgid(); ++ + errno = 0; + + /* drop supplementary groups */ +- if (setgroups(0, NULL) != 0) ++ if (geteuid() == 0 && setgroups(1, &newgid) != 0) + goto fail; + + /* drop GID */ +- if (setgid(getgid()) < 0) ++ if (setgid(newgid) < 0) + goto fail; + + /* drop UID */ diff --git a/sys-apps/util-linux/files/util-linux-2.37.1-lscpu_NULL_dereference_fix.patch b/sys-apps/util-linux/files/util-linux-2.37.1-lscpu_NULL_dereference_fix.patch new file mode 100644 index 000000000000..50322e63a8ec --- /dev/null +++ b/sys-apps/util-linux/files/util-linux-2.37.1-lscpu_NULL_dereference_fix.patch @@ -0,0 +1,50 @@ +From 0d7cef3ddbd2aacbea8c11e8524a3de68dfb8ff6 Mon Sep 17 00:00:00 2001 +From: Karel Zak <kzak@redhat.com> +Date: Fri, 30 Jul 2021 14:35:25 +0200 +Subject: [PATCH] lscpu: fix NULL dereference + +Fixes: https://github.com/karelzak/util-linux/issues/1401 +Signed-off-by: Karel Zak <kzak@redhat.com> +--- + sys-utils/lscpu-cputype.c | 2 +- + sys-utils/lscpu.c | 6 +++--- + 2 files changed, 4 insertions(+), 4 deletions(-) + +diff --git a/sys-utils/lscpu-cputype.c b/sys-utils/lscpu-cputype.c +index 795a4acf5..be16199e0 100644 +--- a/sys-utils/lscpu-cputype.c ++++ b/sys-utils/lscpu-cputype.c +@@ -569,7 +569,7 @@ int lscpu_read_cpuinfo(struct lscpu_cxt *cxt) + /* Set the default type to CPUs which are missing (or not parsed) + * in cpuinfo */ + ct = lscpu_cputype_get_default(cxt); +- for (i = 0; i < cxt->npossibles; i++) { ++ for (i = 0; ct && i < cxt->npossibles; i++) { + struct lscpu_cpu *cpu = cxt->cpus[i]; + + if (cpu && !cpu->type) +diff --git a/sys-utils/lscpu.c b/sys-utils/lscpu.c +index 827e84a6d..e11b2f42f 100644 +--- a/sys-utils/lscpu.c ++++ b/sys-utils/lscpu.c +@@ -991,7 +991,7 @@ static void print_summary(struct lscpu_cxt *cxt) + *(p - 2) = '\0'; + add_summary_s(tb, sec, _("CPU op-mode(s):"), buf); + } +- if (ct->addrsz) ++ if (ct && ct->addrsz) + add_summary_s(tb, sec, _("Address sizes:"), ct->addrsz); + #if !defined(WORDS_BIGENDIAN) + add_summary_s(tb, sec, _("Byte Order:"), "Little Endian"); +@@ -1033,9 +1033,9 @@ static void print_summary(struct lscpu_cxt *cxt) + sec = NULL; + + /* Section: cpu type description */ +- if (ct->vendor) ++ if (ct && ct->vendor) + sec = add_summary_s(tb, NULL, _("Vendor ID:"), ct->vendor); +- if (ct->bios_vendor) ++ if (ct && ct->bios_vendor) + add_summary_s(tb, sec, _("BIOS Vendor ID:"), ct->bios_vendor); + + for (i = 0; i < cxt->ncputypes; i++) |