From ee61c7906b05c8261350d26df422ddb438f1227f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adrian=20Schr=C3=B6ter?= Date: Wed, 4 Dec 2024 08:53:26 +0100 Subject: [PATCH] Sync from SUSE:ALP:Source:Standard:1.0 util-linux revision 361d52c3fbe8af87d8f10963da5f619e --- util-linux-agetty-prevent-cursor-escape.patch | 44 +++++ ...u-document-zVM-limitations-generated.patch | 11 ++ ...linux-chcpu-document-zVM-limitations.patch | 34 ++++ ...ibsmartcols-fix-reduction-stages-use.patch | 58 +++++++ ...-linux-lscpu-add-ARM-cores-neoverse3.patch | 25 +++ util-linux-lscpu-skip-aarch64-decode.patch | 158 ++++++++++++++++++ ...ERR-and-POLLHUP-on-stdin-is-received.patch | 44 +++++ ...t-losetup-lazy-destruction-generated.patch | 22 +++ ...inux-umount-losetup-lazy-destruction.patch | 41 +++++ util-linux-wall-CVE-2024-28085.patch | 25 +++ util-linux.changes | 58 +++++++ util-linux.spec | 25 ++- 12 files changed, 543 insertions(+), 2 deletions(-) create mode 100644 util-linux-agetty-prevent-cursor-escape.patch create mode 100644 util-linux-chcpu-document-zVM-limitations-generated.patch create mode 100644 util-linux-chcpu-document-zVM-limitations.patch create mode 100644 util-linux-libsmartcols-fix-reduction-stages-use.patch create mode 100644 util-linux-lscpu-add-ARM-cores-neoverse3.patch create mode 100644 util-linux-lscpu-skip-aarch64-decode.patch create mode 100644 util-linux-more-exit-if-POLLERR-and-POLLHUP-on-stdin-is-received.patch create mode 100644 util-linux-umount-losetup-lazy-destruction-generated.patch create mode 100644 util-linux-umount-losetup-lazy-destruction.patch create mode 100644 util-linux-wall-CVE-2024-28085.patch diff --git a/util-linux-agetty-prevent-cursor-escape.patch b/util-linux-agetty-prevent-cursor-escape.patch new file mode 100644 index 0000000..2cd50bc --- /dev/null +++ b/util-linux-agetty-prevent-cursor-escape.patch @@ -0,0 +1,44 @@ +From 20b405c0fea29675e1fb54b894eb1c18459f9d50 Mon Sep 17 00:00:00 2001 +From: Stanislav Brabec +Date: Sun, 21 Jul 2024 15:01:42 +0200 +Subject: [PATCH] agetty: Prevent cursor escape + +Starting with 5de97519, it is possible to escape the login dialog on the +screen by arrow characters or using escape sequences. + +Since full processing of escape sequences and ignore them would be +complicated, use a work around: instead of sending ESC to output, send a +printable character. + +It could cause a rendering regression in a very obscure condition: compiled +without IUTF8, encoding is ISO-11548-1 and BRAILLE PATTERN DOTS-1245 is +part of login name. I believe that it is out of supported combinations. + +Signed-off-by: Stanislav Brabec +--- + term-utils/agetty.c | 9 ++++++++- + 1 file changed, 8 insertions(+), 1 deletion(-) + +diff --git a/term-utils/agetty.c b/term-utils/agetty.c +index b28b197ff..500e0992f 100644 +--- a/term-utils/agetty.c ++++ b/term-utils/agetty.c +@@ -2289,7 +2289,14 @@ static char *get_logname(struct issue *ie, struct options *op, struct termios *t + if ((size_t)(bp - logname) >= sizeof(logname) - 1) + log_err(_("%s: input overrun"), op->tty); + if ((tp->c_lflag & ECHO) == 0) +- write_all(1, &c, 1); /* echo the character */ ++ /* Visualize escape sequence instead of its execution */ ++ if (ascval == CTL('[')) ++ /* Ideally it should be "\xe2\x90\x9b" ++ * if (op->flags & (F_UTF8)), ++ * but only some fonts contain it */ ++ write_all(1, "^[", 2); ++ else ++ write_all(1, &c, 1); /* echo the character */ + *bp++ = ascval; /* and store it */ + break; + } +-- +2.45.2 + diff --git a/util-linux-chcpu-document-zVM-limitations-generated.patch b/util-linux-chcpu-document-zVM-limitations-generated.patch new file mode 100644 index 0000000..53cc578 --- /dev/null +++ b/util-linux-chcpu-document-zVM-limitations-generated.patch @@ -0,0 +1,11 @@ +--- util-linux-2.39.3/sys-utils/chcpu.8 2023-12-04 20:34:56.072987008 +0100 ++++ util-linux-2.39.3.patched/sys-utils/chcpu.8 2024-08-01 19:38:45.821501539 +0200 +@@ -61,6 +61,8 @@ + \fB\-g\fP, \fB\-\-deconfigure\fP \fIcpu\-list\fP + .RS 4 + Deconfigure the specified CPUs. Deconfiguring a CPU means that the hypervisor removes the CPU from the virtual hardware on which the Linux instance runs and returns it to the CPU pool. A CPU must be offline, see \fB\-d\fP, before it can be deconfigured. ++.sp ++\fBchcpu \-g\fP is not supported on IBM z/VM, CPUs are always in a configured. + .RE + .sp + \fB\-p\fP, \fB\-\-dispatch\fP \fImode\fP diff --git a/util-linux-chcpu-document-zVM-limitations.patch b/util-linux-chcpu-document-zVM-limitations.patch new file mode 100644 index 0000000..fc2a185 --- /dev/null +++ b/util-linux-chcpu-document-zVM-limitations.patch @@ -0,0 +1,34 @@ +From 7d16145c4696772bb5438a43a482f68fbf046370 Mon Sep 17 00:00:00 2001 +From: Stanislav Brabec +Date: Mon, 18 Mar 2024 18:39:36 +0100 +Subject: [PATCH] chcpu(8): document limitations of -g + +Document that chcpu -g is not supported on IBM z/VM because the detach cpu +would CLEAR the running zVM guest memory. + +References: +https://www.ibm.com/docs/en/linux-on-z?topic=mc-changing-state-1 +https://www.ibm.com/docs/en/zvm/7.3?topic=commands-detach-cpu + +Reported-by: Heikki Ylipiessa +Signed-off-by: Stanislav Brabec +--- + sys-utils/chcpu.8.adoc | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/sys-utils/chcpu.8.adoc b/sys-utils/chcpu.8.adoc +index c5797dfb3..80dfc5f20 100644 +--- a/sys-utils/chcpu.8.adoc ++++ b/sys-utils/chcpu.8.adoc +@@ -37,6 +37,8 @@ Enable the specified CPUs. Enabling a CPU means that the kernel sets it online. + + *-g*, *--deconfigure* _cpu-list_:: + Deconfigure the specified CPUs. Deconfiguring a CPU means that the hypervisor removes the CPU from the virtual hardware on which the Linux instance runs and returns it to the CPU pool. A CPU must be offline, see *-d*, before it can be deconfigured. +++ ++*chcpu -g* is not supported on IBM z/VM, CPUs are always in a configured. + + *-p*, *--dispatch* _mode_:: + Set the CPU dispatching _mode_ (polarization). This option has an effect only if your hardware architecture and hypervisor support CPU polarization. Available _modes_ are: +-- +2.45.0 + diff --git a/util-linux-libsmartcols-fix-reduction-stages-use.patch b/util-linux-libsmartcols-fix-reduction-stages-use.patch new file mode 100644 index 0000000..95fcdd0 --- /dev/null +++ b/util-linux-libsmartcols-fix-reduction-stages-use.patch @@ -0,0 +1,58 @@ +From a74b911bd9f20670ead92973bcacab4ef8fa3b79 Mon Sep 17 00:00:00 2001 +From: Karel Zak +Date: Wed, 15 May 2024 15:45:19 +0200 +Subject: [PATCH] libsmartcols: fix reduction stages use + +There is no proper check for the number of reduction stages, so in +some cases, the code can loop indefinitely. + +The patch also fixes 'rc' variable shadowing. + +Fixes: https://github.com/util-linux/util-linux/issues/3046 +Signed-off-by: Karel Zak +(cherry picked from commit 8a01276a3c5bc09dce342e087019c704d8c56a32) +--- + libsmartcols/src/calculate.c | 10 ++++++---- + 1 file changed, 6 insertions(+), 4 deletions(-) + +diff --git a/libsmartcols/src/calculate.c b/libsmartcols/src/calculate.c +index ad0b15d92..1426d235a 100644 +--- a/libsmartcols/src/calculate.c ++++ b/libsmartcols/src/calculate.c +@@ -302,6 +302,8 @@ static int reduce_column(struct libscols_table *tb, + size_t wanted, org_width, reduce = 1; + int is_trunc = 0; + ++ if (stage > 6) ++ return -1; + if (tb->termwidth >= *width) + return 1; + /* ignore hidden columns */ +@@ -481,7 +483,7 @@ int __scols_calculate(struct libscols_table *tb, struct ul_buffer *buf) + /* reduce columns width */ + while (width > tb->termwidth) { + size_t org_width = width; +- int rc = 0, n = 0; ++ int xrc = 0, n = 0; + + if (!sorted) { + DBG(TAB, ul_debugobj(tb, "sorting by deviation")); +@@ -496,12 +498,12 @@ int __scols_calculate(struct libscols_table *tb, struct ul_buffer *buf) + scols_reset_iter(&itr, SCOLS_ITER_BACKWARD); + + while (width > tb->termwidth +- && rc == 0 ++ && xrc == 0 + && scols_table_next_column(tb, &itr, &cl) == 0) { +- rc = reduce_column(tb, cl, &width, stage, n++); ++ xrc = reduce_column(tb, cl, &width, stage, n++); + } + +- if (rc != 0) ++ if (xrc != 0) + break; + if (org_width == width) + stage++; +-- +2.45.0 + diff --git a/util-linux-lscpu-add-ARM-cores-neoverse3.patch b/util-linux-lscpu-add-ARM-cores-neoverse3.patch new file mode 100644 index 0000000..18980ac --- /dev/null +++ b/util-linux-lscpu-add-ARM-cores-neoverse3.patch @@ -0,0 +1,25 @@ +From c91694dd066d07c2ca7d68cbe212b2e1f893e942 Mon Sep 17 00:00:00 2001 +From: Thomas Kaiser +Date: Mon, 26 Feb 2024 12:20:11 +0100 +Subject: [PATCH] Adding Neoverse-V3/-N3 ARM cores + +--- + sys-utils/lscpu-arm.c | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/sys-utils/lscpu-arm.c b/sys-utils/lscpu-arm.c +index 511ab281c..b9e8060a9 100644 +--- a/sys-utils/lscpu-arm.c ++++ b/sys-utils/lscpu-arm.c +@@ -93,6 +93,8 @@ static const struct id_part arm_part[] = { + { 0xd80, "Cortex-A520" }, + { 0xd81, "Cortex-A720" }, + { 0xd82, "Cortex-X4" }, ++ { 0xd84, "Neoverse-V3" }, ++ { 0xd8e, "Neoverse-N3" }, + { -1, "unknown" }, + }; + +-- +2.45.0 + diff --git a/util-linux-lscpu-skip-aarch64-decode.patch b/util-linux-lscpu-skip-aarch64-decode.patch new file mode 100644 index 0000000..538ae24 --- /dev/null +++ b/util-linux-lscpu-skip-aarch64-decode.patch @@ -0,0 +1,158 @@ +From 50a3efab6d126b28fcdcc28f1a0cd5cd596ae357 Mon Sep 17 00:00:00 2001 +From: "Pratik R. Sampat" +Date: Mon, 22 Jul 2024 16:00:46 +0000 +Subject: [PATCH] lscpu: Skip aarch64 decode path for rest of the architectures + +lscpu behaves differently when run sudo vs non-sudo on AMD architectures. + +On sudo runs, it adds a BIOS model name and BIOS CPU family which it +does not add for the latter. However since this parsing from the DMI is +primarily catered to aarch64, for AMD platform the BIOS model name is +printed out as follows "AMD XXX Processor *Unknown* CPU @ X.XGHz" due +to the part number is not populated on the platform. + +The issue boils down to an unconditional call to arm_decode() which +attempts to read the DMI path and populate the processor information +such as processor version and part number which is set to Unknown on AMD +CPUs. + +81d6de9 (lscpu: remove the old code) changed the DMI path from +/sys/firmware/dmi/entries/4-0/raw (non-existent) to +/sys/firmware/dmi/tables/dmi (existent) which has brought this latent +issue to light as DMI was starting to be parsed incorrectly. + +Therefore, do not perform aarch64 parsing for other architectures. + +Before +------ +$ lscpu +Vendor ID: AuthenticAMD + Model name: AMD EPYC XXXX X-Core Processor + CPU family: 26 + +$ sudo lscpu +Vendor ID: AuthenticAMD + BIOS Vendor ID: Advanced Micro Devices, Inc. + Model name: AMD EPYC XXXX X-Core Processor + BIOS Model name: AMD EPYC XXXX X-Core Processor Unknown CPU @ X.XGHz + BIOS CPU family: 107 + CPU family: 26 + +After +----- +$ lscpu +Vendor ID: AuthenticAMD + Model name: AMD EPYC XXXX X-Core Processor + CPU family: 26 + +$ sudo lscpu +Vendor ID: AuthenticAMD + Model name: AMD EPYC XXXX X-Core Processor + CPU family: 26 + +Fixes: 81d6de9 ("lscpu: remove the old code") +Co-developed-by: Karel Zak +Signed-off-by: Karel Zak +Signed-off-by: Pratik R. Sampat +--- + sys-utils/lscpu-arm.c | 37 ++++++++++++++++++++++++++++++++++++- + sys-utils/lscpu.c | 3 ++- + sys-utils/lscpu.h | 2 ++ + 3 files changed, 40 insertions(+), 2 deletions(-) + +Contains parts of: +commit 5d1129e6879a05aa9ac5804ffc8ace22cda735c1 +Author: Karel Zak +Date: Mon Jul 29 10:21:28 2024 +0200 + +Index: util-linux-2.39.3/sys-utils/lscpu-arm.c +=================================================================== +--- util-linux-2.39.3.orig/sys-utils/lscpu-arm.c ++++ util-linux-2.39.3/sys-utils/lscpu-arm.c +@@ -332,14 +332,49 @@ static int parse_id(const char *str) + + #define parse_model_id(_cxt) (parse_id((_cxt)->model)) + ++static inline int get_implementer_id(struct lscpu_cputype *ct) ++{ ++ if (ct->vendor_id) ++ return ct->vendor_id; ++ return parse_id(ct->vendor); ++} ++ + static inline int parse_implementer_id(struct lscpu_cputype *ct) + { ++ int id; ++ + if (ct->vendor_id) + return ct->vendor_id; +- ct->vendor_id = parse_id(ct->vendor); ++ id = get_implementer_id(ct); ++ if (id <= 0) ++ return id; ++ ++ ct->vendor_id = id; + return ct->vendor_id; + } + ++int is_arm(struct lscpu_cxt *cxt) ++{ ++ size_t i; ++ ++ if (is_live(cxt)) ++ return strcmp(cxt->arch->name, "aarch64") == 0; ++ ++ /* dump; assume ARM if vendor ID is known */ ++ for (i = 0; i < cxt->ncputypes; i++) { ++ ++ int j, id = get_implementer_id(cxt->cputypes[i]); ++ if (id <= 0) ++ continue; ++ for (j = 0; hw_implementer[j].id != -1; j++) { ++ if (hw_implementer[j].id == id) ++ return 1; ++ } ++ } ++ ++ return 0; ++} ++ + /* + * Use model and vendor IDs to decode to human readable names. + */ +Index: util-linux-2.39.3/sys-utils/lscpu.c +=================================================================== +--- util-linux-2.39.3.orig/sys-utils/lscpu.c ++++ util-linux-2.39.3/sys-utils/lscpu.c +@@ -1371,7 +1371,8 @@ int main(int argc, char *argv[]) + lscpu_read_numas(cxt); + lscpu_read_topology(cxt); + +- lscpu_decode_arm(cxt); ++ if (is_arm(cxt)) ++ lscpu_decode_arm(cxt); + + cxt->virt = lscpu_read_virtualization(cxt); + +Index: util-linux-2.39.3/sys-utils/lscpu.h +=================================================================== +--- util-linux-2.39.3.orig/sys-utils/lscpu.h ++++ util-linux-2.39.3/sys-utils/lscpu.h +@@ -252,6 +252,8 @@ struct lscpu_cxt { + int is_cluster; /* For aarch64 if the machine doesn't have ACPI PPTT */ + }; + ++#define is_live(_cxt) (!(_cxt)->noalive) ++ + #define is_cpu_online(_cxt, _cpu) \ + ((_cxt) && (_cpu) && (_cxt)->online && \ + CPU_ISSET_S((_cpu)->logical_id, (_cxt)->setsize, (_cxt)->online)) +@@ -260,6 +262,8 @@ struct lscpu_cxt { + ((_cxt) && (_cpu) && (_cxt)->present && \ + CPU_ISSET_S((_cpu)->logical_id, (_cxt)->setsize, (_cxt)->present)) + ++int is_arm(struct lscpu_cxt *cxt); ++ + struct lscpu_cputype *lscpu_new_cputype(void); + void lscpu_ref_cputype(struct lscpu_cputype *ct); + void lscpu_unref_cputype(struct lscpu_cputype *ct); diff --git a/util-linux-more-exit-if-POLLERR-and-POLLHUP-on-stdin-is-received.patch b/util-linux-more-exit-if-POLLERR-and-POLLHUP-on-stdin-is-received.patch new file mode 100644 index 0000000..73c9ba7 --- /dev/null +++ b/util-linux-more-exit-if-POLLERR-and-POLLHUP-on-stdin-is-received.patch @@ -0,0 +1,44 @@ +From 68e14d3d5f4116ad3aca0e392d008645ea90cf70 Mon Sep 17 00:00:00 2001 +From: Goldwyn Rodrigues +Date: Fri, 8 Dec 2023 09:04:39 -0600 +Subject: [PATCH] more: exit if POLLERR and POLLHUP on stdin is received +References: bsc#1220117 + +more command continues to run in case stdin have closed the file and it +takes 100% of CPU. This is because revents on stdin send +POLLIN | POLLHUP | POLLERR once stdin is closed. more receives it even +though it is not requested in events. This is common Linux behaviour to +never mask out POLLHUP or POLLERR. The loop in more_key_command() runs +infinitely because more_poll() returns 0 and read_command() reads 0 +bytes. + +Check for POLLERR and POLLHUP, and exit more in case of an error. + +Steps to reproduce: +1. Setup /etc/systemd/logind.conf with KillUserProcesses=no +2. Add config "Defaults use_pty" in /etc/sudoers +3. Start an ssh session to the machine +4. # sudo su - +5. # more +6. kill the parent ssh process, say close the tab + +At this time "more" runs with 100% CPU utilization. + +Signed-off-by: Goldwyn Rodrigues + +diff --git a/text-utils/more.c b/text-utils/more.c +index d4db3d5eb..a49acbc3e 100644 +--- a/text-utils/more.c ++++ b/text-utils/more.c +@@ -1392,6 +1392,11 @@ static int more_poll(struct more_control *ctl, int timeout) + abort(); + } + } ++ ++ /* Check for POLLERR and POLLHUP in stdin revents */ ++ if ((pfd[1].revents & POLLERR) && (pfd[1].revents & POLLHUP)) ++ more_exit(ctl); ++ + if (pfd[1].revents == 0) + return 1; + return 0; diff --git a/util-linux-umount-losetup-lazy-destruction-generated.patch b/util-linux-umount-losetup-lazy-destruction-generated.patch new file mode 100644 index 0000000..9e7ef82 --- /dev/null +++ b/util-linux-umount-losetup-lazy-destruction-generated.patch @@ -0,0 +1,22 @@ +--- util-linux-2.39.3/sys-utils/umount.8 2023-12-04 20:34:55.708989211 +0100 ++++ util-linux-2.39.3.patched/sys-utils/umount.8 2024-08-01 19:46:58.227874568 +0200 +@@ -156,6 +156,8 @@ + The \fBumount\fP command will automatically detach loop device previously initialized by \fBmount\fP(8) command independently of \fI/etc/mtab\fP. + .sp + In this case the device is initialized with "autoclear" flag (see \fBlosetup\fP(8) output for more details), otherwise it\(cqs necessary to use the option \fB\-\-detach\-loop\fP or call \fBlosetup \-d\fP \fIdevice\fP. The autoclear feature is supported since Linux 2.6.25. ++.sp ++Note that since Linux v3.7 kernel uses "lazy device destruction". The system just marks the loop device by autoclear flag and destroys it later. If you need to wait for a complete removal of the loop device, call \fBudevadm settle\fP after \fBumount\fP. + .SH "EXTERNAL HELPERS" + .sp + The syntax of external unmount helpers is: +--- util-linux-2.39.3/sys-utils/losetup.8 2023-12-04 20:34:54.926993943 +0100 ++++ util-linux-2.39.3.patched/sys-utils/losetup.8 2024-08-01 19:37:02.084188151 +0200 +@@ -74,7 +74,7 @@ + .sp + \fB\-d\fP, \fB\-\-detach\fP \fIloopdev\fP... + .RS 4 +-Detach the file or device associated with the specified loop device(s). Note that since Linux v3.7 kernel uses "lazy device destruction". The detach operation does not return \fBEBUSY\fP error anymore if device is actively used by system, but it is marked by autoclear flag and destroyed later. ++Detach the file or device associated with the specified loop device(s). Note that since Linux v3.7 kernel uses "lazy device destruction". The detach operation does not return \fBEBUSY\fP error anymore if device is actively used by system, but it is marked by autoclear flag and destroyed later. Even if the device is not used, the loop device can be destroyed later. If you need to wait for a complete removal of the loop device, call \fBudevadm settle\fP after \fBlosetup\fP. + .RE + .sp + \fB\-D\fP, \fB\-\-detach\-all\fP diff --git a/util-linux-umount-losetup-lazy-destruction.patch b/util-linux-umount-losetup-lazy-destruction.patch new file mode 100644 index 0000000..1d6a43f --- /dev/null +++ b/util-linux-umount-losetup-lazy-destruction.patch @@ -0,0 +1,41 @@ +From fc67f18be51f57ee9a59a0f8f7ad16f284a24a3e Mon Sep 17 00:00:00 2001 +From: Stanislav Brabec +Date: Wed, 19 Jun 2024 17:31:34 +0200 +Subject: [PATCH] umount, losetup: Document loop destroy behavior + +The loop device detach runs asynchronously in the background. It can cause +unexpected errors. Document the possible existence of the loop device after +exit of losetup -d or umount and need of "udevadm settle". + +Signed-off-by: Stanislav Brabec +--- + sys-utils/losetup.8.adoc | 2 +- + sys-utils/umount.8.adoc | 2 ++ + 2 files changed, 3 insertions(+), 1 deletion(-) + +Index: util-linux-2.39.3/sys-utils/losetup.8.adoc +=================================================================== +--- util-linux-2.39.3.orig/sys-utils/losetup.8.adoc ++++ util-linux-2.39.3/sys-utils/losetup.8.adoc +@@ -54,7 +54,7 @@ The _size_ and _offset_ arguments may be + Show the status of all loop devices. Note that not all information is accessible for non-root users. See also *--list*. The old output format (as printed without *--list*) is deprecated. + + *-d*, *--detach* _loopdev_...:: +-Detach the file or device associated with the specified loop device(s). Note that since Linux v3.7 kernel uses "lazy device destruction". The detach operation does not return *EBUSY* error anymore if device is actively used by system, but it is marked by autoclear flag and destroyed later. ++Detach the file or device associated with the specified loop device(s). Note that since Linux v3.7 kernel uses "lazy device destruction". The detach operation does not return *EBUSY* error anymore if device is actively used by system, but it is marked by autoclear flag and destroyed later. Even if the device is not used, the loop device can be destroyed later. If you need to wait for a complete removal of the loop device, call *udevadm settle* after *losetup*. + + *-D*, *--detach-all*:: + Detach all associated loop devices. +Index: util-linux-2.39.3/sys-utils/umount.8.adoc +=================================================================== +--- util-linux-2.39.3.orig/sys-utils/umount.8.adoc ++++ util-linux-2.39.3/sys-utils/umount.8.adoc +@@ -127,6 +127,8 @@ The *umount* command will automatically + + In this case the device is initialized with "autoclear" flag (see *losetup*(8) output for more details), otherwise it's necessary to use the option *--detach-loop* or call *losetup -d* _device_. The autoclear feature is supported since Linux 2.6.25. + ++Note that since Linux v3.7 kernel uses "lazy device destruction". The system just marks the loop device by autoclear flag and destroys it later. If you need to wait for a complete removal of the loop device, call *udevadm settle* after *umount*. ++ + == EXTERNAL HELPERS + + The syntax of external unmount helpers is: diff --git a/util-linux-wall-CVE-2024-28085.patch b/util-linux-wall-CVE-2024-28085.patch new file mode 100644 index 0000000..b97e1a6 --- /dev/null +++ b/util-linux-wall-CVE-2024-28085.patch @@ -0,0 +1,25 @@ +From f86bbf07ca85640c886dacc4fba159570ddc1b4d Mon Sep 17 00:00:00 2001 +From: Karel Zak +Date: Thu, 21 Mar 2024 11:16:20 +0100 +Subject: [PATCH] wall: consolidate output on the terminal + +Let's use for all cases the same output function. + +Signed-off-by: Karel Zak +--- + term-utils/wall.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +Index: util-linux-2.37.4/term-utils/wall.c +=================================================================== +--- util-linux-2.37.4.orig/term-utils/wall.c ++++ util-linux-2.37.4/term-utils/wall.c +@@ -344,7 +344,7 @@ static char *makemsg(char *fname, char * + int i; + + for (i = 0; i < mvecsz; i++) { +- fputs(mvec[i], fs); ++ fputs_careful(mvec[i], fs, '^', true, TERM_WIDTH); + if (i < mvecsz - 1) + fputc(' ', fs); + } diff --git a/util-linux.changes b/util-linux.changes index 302bc1b..6ce7861 100644 --- a/util-linux.changes +++ b/util-linux.changes @@ -1,3 +1,61 @@ +------------------------------------------------------------------- +Tue Sep 3 21:37:24 UTC 2024 - Stanislav Brabec + +- Skip aarch64 decode path for rest of the architectures + (bsc#1229476, util-linux-lscpu-skip-aarch64-decode.patch). + +------------------------------------------------------------------- +Tue Jul 23 15:58:03 UTC 2024 - Stanislav Brabec + +- agetty: Prevent login cursor escape (bsc#1194818, + util-linux-agetty-prevent-cursor-escape.patch). + +------------------------------------------------------------------- +Thu Jun 20 22:09:30 UTC 2024 - Stanislav Brabec + +- Document unexpected side effects of lazy destruction + (bsc#1159034, util-linux-umount-losetup-lazy-destruction.patch, + util-linux-umount-losetup-lazy-destruction-generated.patch). + +------------------------------------------------------------------- +Thu Jun 20 21:59:59 UTC 2024 - Stanislav Brabec + +- Don't delete binaries not common for all architectures. Create an + util-linux-extra subpackage instead, so users of third party + tools can use them. (bsc#1222285) + +------------------------------------------------------------------- +Sun Jun 9 02:07:15 UTC 2024 - Stanislav Brabec + +- Fix hang of lscpu -e (bsc#1225598, + util-linux-libsmartcols-fix-reduction-stages-use.patch). + +------------------------------------------------------------------- +Thu May 23 14:09:09 UTC 2024 - Stanislav Brabec + +- lscpu: Add more ARM cores (bsc#1223605, + util-linux-lscpu-add-ARM-cores-neoverse3.patch). + +------------------------------------------------------------------- +Tue May 21 17:56:32 UTC 2024 - Stanislav Brabec + +- Document that chcpu -g is not supported on IBM z/VM (bsc#1218609, + util-linux-chcpu-document-zVM-limitations.patch, + util-linux-chcpu-document-zVM-limitations-generated.patch). + +------------------------------------------------------------------- +Mon May 6 20:56:11 UTC 2024 - Goldwyn Rodrigues + +- bsc#1220117: Processes not cleaned up after failed SSH session are using up 100% CPU + + util-linux-more-exit-if-POLLERR-and-POLLHUP-on-stdin-is-received.patch + +------------------------------------------------------------------- +Wed Mar 27 14:07:05 UTC 2024 - Stanislav Brabec + +- Properly neutralize escape sequences in wall + (util-linux-wall-CVE-2024-28085.patch, bsc#1221831, + CVE-2024-28085). + ------------------------------------------------------------------- Fri Feb 9 17:56:16 UTC 2024 - Stanislav Brabec diff --git a/util-linux.spec b/util-linux.spec index 328a3b3..6eec054 100644 --- a/util-linux.spec +++ b/util-linux.spec @@ -15,7 +15,6 @@ # Please submit bugfixes or comments via https://bugs.opensuse.org/ # - %global flavor @BUILD_FLAVOR@%{nil} # Parts description: @@ -103,15 +102,37 @@ Source14: runuser.pamd Source15: runuser-l.pamd Source16: su-l.pamd Source51: blkid.conf +# PATCH-EXTEND-UPSTREAM: Let `su' handle /sbin and /usr/sbin in path Patch0: make-sure-sbin-resp-usr-sbin-are-in-PATH.diff Patch1: libmount-print-a-blacklist-hint-for-unknown-filesyst.patch Patch2: Add-documentation-on-blacklisted-modules-to-mount-8-.patch +# PATCH-FIX-SUSE util-linux-bash-completion-su-chsh-l.patch bsc1172427 -- Fix "su -s" bash completion. Patch3: util-linux-bash-completion-su-chsh-l.patch +# PATCH-FIX-SUSE 0001-Revert-libblkid-try-LUKS2-first-when-probing.patch bsc#1224393 Patch4: 0001-Revert-libblkid-try-LUKS2-first-when-probing.patch Patch5: util-linux-fix-tests-with-64k-pagesize.patch Patch6: use-logind-not-utmp.patch Patch7: tests-increase-delay-for-waitpid-test.patch - +# PATCH-FIX-SECURITY util-linux-wall-CVE-2024-28085.patch bsc1221831 CVE-2024-28085 sbrabec@suse.com -- Properly neutralize escape sequences in wall. +Patch8: util-linux-wall-CVE-2024-28085.patch +# PATCH-FIX-UPSTREAM util-linux-more-exit-if-POLLERR-and-POLLHUP-on-stdin-is-received.patch bsc1220117 rgoldwyn@suse.com -- Processes not cleaned up after failed SSH session are using up 100% CPU +Patch9: util-linux-more-exit-if-POLLERR-and-POLLHUP-on-stdin-is-received.patch +# PATCH-FIX-UPSTREAM util-linux-chcpu-document-zVM-limitations.patch bsc1218609 sbrabec@suse.com -- Document limitations of chcpu --deconfigure on IBM z/VM. +Patch10: util-linux-chcpu-document-zVM-limitations.patch +# PATCH-FIX-UPSTREAM util-linux-chcpu-document-zVM-limitations-generated.patch bsc1218609 sbrabec@suse.com -- Document limitations of chcpu --deconfigure on IBM z/VM. (patch generated file) +Patch11: util-linux-chcpu-document-zVM-limitations-generated.patch +# PATCH-FEATURE-UPSTREAM util-linux-lscpu-add-ARM-cores-neoverse3.patch bsc1223605 sbrabec@suse.com -- lscpu: Add missing ARM-cores. +Patch12: util-linux-lscpu-add-ARM-cores-neoverse3.patch +# PATCH-FIX-UPSTREAM util-linux-libsmartcols-fix-reduction-stages-use.patch bsc1225598 sbrabec@suse.com -- Fix hang of lscpu -e. +Patch13: util-linux-libsmartcols-fix-reduction-stages-use.patch +# PATCH-FIX-UPSTREAM util-linux-umount-losetup-lazy-destruction.patch bsc1159034 sbrabec@suse.com -- Document unexpected side effects of lazy destruction. +Patch14: util-linux-umount-losetup-lazy-destruction.patch +# PATCH-FIX-UPSTREAM util-linux-umount-losetup-lazy-destruction-generated.patch bsc1159034 sbrabec@suse.com -- Document unexpected side effects of lazy destruction. (patch generated file) +Patch15: util-linux-umount-losetup-lazy-destruction-generated.patch +# PATCH-FIX-UPSTREAM-PROPOSED util-linux-agetty-prevent-cursor-escape.patch bsc1194818 sbrabec@suse.com -- Prevent cursor escape using arrows or escape sequences. +Patch16: util-linux-agetty-prevent-cursor-escape.patch +# PATCH-FIX-UPSTREAM util-linux-lscpu-skip-aarch64-decode.patch bsc1229476 sbrabec@suse.com -- Skip aarch64 decode path for rest of the architectures. +Patch17: util-linux-lscpu-skip-aarch64-decode.patch BuildRequires: audit-devel BuildRequires: bc BuildRequires: binutils-devel