Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package util-linux for openSUSE:Factory 
checked in at 2024-11-22 23:50:12
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/util-linux (Old)
 and      /work/SRC/openSUSE:Factory/.util-linux.new.28523 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "util-linux"

Fri Nov 22 23:50:12 2024 rev:290 rq:1225398 version:2.40.2

Changes:
--------
--- /work/SRC/openSUSE:Factory/util-linux/util-linux.changes    2024-10-24 
15:40:34.054660244 +0200
+++ /work/SRC/openSUSE:Factory/.util-linux.new.28523/util-linux.changes 
2024-11-22 23:50:14.446188326 +0100
@@ -1,0 +2,11 @@
+Sun Nov 17 21:06:01 UTC 2024 - Stanislav Brabec <[email protected]>
+
+- Skip aarch64 decode path for rest of the architectures
+  (bsc#1229476, util-linux-lscpu-skip-aarch64-decode.patch).
+- agetty: Prevent login cursor escape (bsc#1194818,
+  util-linux-agetty-prevent-cursor-escape.patch).
+- Document unexpected side effects of lazy destruction
+  (bsc#1159034, util-linux-umount-losetup-lazy-destruction.patch,
+  util-linux-umount-losetup-lazy-destruction-generated.patch).
+
+-------------------------------------------------------------------
@@ -14,0 +26 @@
+    fix hang of lscpu -e (bsc#1225598)
@@ -114 +126 @@
-  * chcpu: document limitations of -g
+  * chcpu: document limitations of -g (bsc#1218609)
@@ -137 +149 @@
-  * lscpu: even more Arm part numbers
+  * lscpu: even more Arm part numbers (bsc#1223605)
@@ -140,0 +153,2 @@
+  * more: clea processes not cleaned up after failed SSH session
+    using up 100% CPU (bsc#1220117)
@@ -147,0 +162,2 @@
+    properly neutralize escape sequences (bsc#1221831,
+    CVE-2024-28085)
@@ -266,0 +283 @@
+  (bsc#1224393, boo#1213227, boo#1213361)

New:
----
  _scmsync.obsinfo
  build.specials.obscpio
  util-linux-agetty-prevent-cursor-escape.patch
  util-linux-lscpu-skip-aarch64-decode.patch
  util-linux-umount-losetup-lazy-destruction-generated.patch
  util-linux-umount-losetup-lazy-destruction.patch

BETA DEBUG BEGIN:
  New:- agetty: Prevent login cursor escape (bsc#1194818,
  util-linux-agetty-prevent-cursor-escape.patch).
- Document unexpected side effects of lazy destruction
  New:- Skip aarch64 decode path for rest of the architectures
  (bsc#1229476, util-linux-lscpu-skip-aarch64-decode.patch).
- agetty: Prevent login cursor escape (bsc#1194818,
  New:  (bsc#1159034, util-linux-umount-losetup-lazy-destruction.patch,
  util-linux-umount-losetup-lazy-destruction-generated.patch).
  New:- Document unexpected side effects of lazy destruction
  (bsc#1159034, util-linux-umount-losetup-lazy-destruction.patch,
  util-linux-umount-losetup-lazy-destruction-generated.patch).
BETA DEBUG END:

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ util-linux.spec ++++++
--- /var/tmp/diff_new_pack.O4zZHm/_old  2024-11-22 23:50:15.670239321 +0100
+++ /var/tmp/diff_new_pack.O4zZHm/_new  2024-11-22 23:50:15.674239488 +0100
@@ -110,6 +110,14 @@
 # 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
 Patch5:         static_lib.patch
+# PATCH-FIX-UPSTREAM util-linux-umount-losetup-lazy-destruction.patch 
bsc1159034 [email protected] -- Document unexpected side effects of lazy 
destruction.
+Patch12:        util-linux-umount-losetup-lazy-destruction.patch
+# PATCH-FIX-UPSTREAM 
util-linux-umount-losetup-lazy-destruction-generated.patch bsc1159034 
[email protected] -- Document unexpected side effects of lazy destruction. 
(patch generated file)
+Patch13:        util-linux-umount-losetup-lazy-destruction-generated.patch
+# PATCH-FIX-UPSTREAM util-linux-agetty-prevent-cursor-escape.patch bsc1194818 
[email protected] -- Prevent cursor escape using arrows or escape sequences.
+Patch14:        util-linux-agetty-prevent-cursor-escape.patch
+# PATCH-FIX-UPSTREAM util-linux-lscpu-skip-aarch64-decode.patch bsc1229476 
[email protected] -- Skip aarch64 decode path for rest of the architectures.
+Patch15:        util-linux-lscpu-skip-aarch64-decode.patch
 BuildRequires:  audit-devel
 BuildRequires:  bc
 BuildRequires:  binutils-devel

++++++ _scmsync.obsinfo ++++++
mtime: 1732123801
commit: 1f607dd355d8ca2a0fa48e4d3662cad355a81b877985b076ecc7a1527d45771c
url: https://src.opensuse.org/jengelh/util-linux
revision: master


++++++ util-linux-agetty-prevent-cursor-escape.patch ++++++
>From 20b405c0fea29675e1fb54b894eb1c18459f9d50 Mon Sep 17 00:00:00 2001
From: Stanislav Brabec <[email protected]>
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 <[email protected]>
---
 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


++++++ util-linux-lscpu-skip-aarch64-decode.patch ++++++
>From 50a3efab6d126b28fcdcc28f1a0cd5cd596ae357 Mon Sep 17 00:00:00 2001
From: "Pratik R. Sampat" <[email protected]>
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 <[email protected]>
Signed-off-by: Karel Zak <[email protected]>
Signed-off-by: Pratik R. Sampat <[email protected]>
---
 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 <[email protected]>
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);

++++++ util-linux-umount-losetup-lazy-destruction-generated.patch ++++++
--- 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

++++++ util-linux-umount-losetup-lazy-destruction.patch ++++++
>From fc67f18be51f57ee9a59a0f8f7ad16f284a24a3e Mon Sep 17 00:00:00 2001
From: Stanislav Brabec <[email protected]>
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 <[email protected]>
---
 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:

Reply via email to