sync community patches
(cherry picked from commit 5227de9e16e7a611abd47844045a753ad3b6b2e5)
This commit is contained in:
parent
a6674deaaf
commit
e5ed90d5c7
59
backport-hexdump-check-blocksize-when-display-data.patch
Normal file
59
backport-hexdump-check-blocksize-when-display-data.patch
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
From dfa1ad272528a92384adac523cf2f2949b767d8d Mon Sep 17 00:00:00 2001
|
||||||
|
From: Karel Zak <kzak@redhat.com>
|
||||||
|
Date: Tue, 27 Feb 2024 18:38:02 +0100
|
||||||
|
Subject: [PATCH] hexdump: check blocksize when display data
|
||||||
|
|
||||||
|
hexdump(1) stores input to buffer and apply format unit when prints
|
||||||
|
the output. The unit can move pointer which points to the buffer, but
|
||||||
|
code does not check for limits.
|
||||||
|
|
||||||
|
Fixes: https://github.com/util-linux/util-linux/issues/2806
|
||||||
|
Signed-off-by: Karel Zak <kzak@redhat.com>
|
||||||
|
---
|
||||||
|
text-utils/hexdump-display.c | 10 +++++++++-
|
||||||
|
1 file changed, 9 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/text-utils/hexdump-display.c b/text-utils/hexdump-display.c
|
||||||
|
index bc92bd0ca..c865127c8 100644
|
||||||
|
--- a/text-utils/hexdump-display.c
|
||||||
|
+++ b/text-utils/hexdump-display.c
|
||||||
|
@@ -250,6 +250,8 @@ void display(struct hexdump *hex)
|
||||||
|
struct list_head *p, *q, *r;
|
||||||
|
|
||||||
|
while ((bp = get(hex)) != NULL) {
|
||||||
|
+ ssize_t rem = hex->blocksize;
|
||||||
|
+
|
||||||
|
fs = &hex->fshead; savebp = bp; saveaddress = address;
|
||||||
|
|
||||||
|
list_for_each(p, fs) {
|
||||||
|
@@ -263,7 +265,7 @@ void display(struct hexdump *hex)
|
||||||
|
|
||||||
|
cnt = fu->reps;
|
||||||
|
|
||||||
|
- while (cnt) {
|
||||||
|
+ while (cnt && rem >= 0) {
|
||||||
|
list_for_each(r, &fu->prlist) {
|
||||||
|
pr = list_entry(r, struct hexdump_pr, prlist);
|
||||||
|
|
||||||
|
@@ -280,12 +282,18 @@ void display(struct hexdump *hex)
|
||||||
|
print(pr, bp);
|
||||||
|
|
||||||
|
address += pr->bcnt;
|
||||||
|
+
|
||||||
|
+ rem -= pr->bcnt;
|
||||||
|
+ if (rem < 0)
|
||||||
|
+ break;
|
||||||
|
+
|
||||||
|
bp += pr->bcnt;
|
||||||
|
}
|
||||||
|
--cnt;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
bp = savebp;
|
||||||
|
+ rem = hex->blocksize;
|
||||||
|
address = saveaddress;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
--
|
||||||
|
2.33.0
|
||||||
|
|
||||||
28
backport-last-avoid-out-of-bounds-array-access.patch
Normal file
28
backport-last-avoid-out-of-bounds-array-access.patch
Normal file
@ -0,0 +1,28 @@
|
|||||||
|
From 75822efb8e948b538d9e9ccc329a5430fdabb7ea Mon Sep 17 00:00:00 2001
|
||||||
|
From: biubiuzy <294772273@qq.com>
|
||||||
|
Date: Fri, 23 Feb 2024 17:44:12 +0800
|
||||||
|
Subject: [PATCH] last: avoid out of bounds array access
|
||||||
|
|
||||||
|
---
|
||||||
|
login-utils/last.c | 5 ++++-
|
||||||
|
1 file changed, 4 insertions(+), 1 deletion(-)
|
||||||
|
|
||||||
|
diff --git a/login-utils/last.c b/login-utils/last.c
|
||||||
|
index bbbe817f8..f5a9fec08 100644
|
||||||
|
--- a/login-utils/last.c
|
||||||
|
+++ b/login-utils/last.c
|
||||||
|
@@ -351,7 +351,10 @@ static int time_formatter(int fmt, char *dst, size_t dlen, time_t *when)
|
||||||
|
{
|
||||||
|
char buf[CTIME_BUFSIZ];
|
||||||
|
|
||||||
|
- ctime_r(when, buf);
|
||||||
|
+ if (!ctime_r(when, buf)) {
|
||||||
|
+ ret = -1;
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
snprintf(dst, dlen, "%s", buf);
|
||||||
|
ret = rtrim_whitespace((unsigned char *) dst);
|
||||||
|
break;
|
||||||
|
--
|
||||||
|
2.33.0
|
||||||
|
|
||||||
64
backport-lsipc-fix-semaphore-USED-counter.patch
Normal file
64
backport-lsipc-fix-semaphore-USED-counter.patch
Normal file
@ -0,0 +1,64 @@
|
|||||||
|
From fa45a6e516065f489b1cfb924ec3fc06960e0839 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Karel Zak <kzak@redhat.com>
|
||||||
|
Date: Tue, 26 Mar 2024 12:45:24 +0100
|
||||||
|
Subject: [PATCH] lsipc: fix semaphore USED counter
|
||||||
|
|
||||||
|
The code incorrectly counts only with the first item in the linked
|
||||||
|
list (due to a typo). It seems rather fragile to use "semds" and
|
||||||
|
"semdsp" as variable names in the same code ...
|
||||||
|
|
||||||
|
# lsipc -gs
|
||||||
|
|
||||||
|
Old:
|
||||||
|
|
||||||
|
KEY ID PERMS OWNER NSEMS RESOURCE DESCRIPTION LIMIT USED USE%
|
||||||
|
SEMMNI Number of semaphore identifiers 32000 3 0.01%
|
||||||
|
SEMMNS Total number of semaphores 1024000000 369 0.00%
|
||||||
|
SEMMSL Max semaphores per semaphore set. 32000 - -
|
||||||
|
SEMOPM Max number of operations per semop(2) 500 - -
|
||||||
|
SEMVMX Semaphore max value 32767 - -
|
||||||
|
|
||||||
|
Fixed:
|
||||||
|
|
||||||
|
KEY ID PERMS OWNER NSEMS RESOURCE DESCRIPTION LIMIT USED USE%
|
||||||
|
SEMMNI Number of semaphore identifiers 32000 3 0.01%
|
||||||
|
SEMMNS Total number of semaphores 1024000000 156 0.00%
|
||||||
|
SEMMSL Max semaphores per semaphore set. 32000 - -
|
||||||
|
SEMOPM Max number of operations per semop(2) 500 - -
|
||||||
|
SEMVMX Semaphore max value 32767 - -
|
||||||
|
|
||||||
|
Addresses: https://issues.redhat.com/browse/RHEL-30269
|
||||||
|
Signed-off-by: Karel Zak <kzak@redhat.com>
|
||||||
|
---
|
||||||
|
sys-utils/lsipc.c | 8 +++++---
|
||||||
|
1 file changed, 5 insertions(+), 3 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/sys-utils/lsipc.c b/sys-utils/lsipc.c
|
||||||
|
index 2c5561112..515788c13 100644
|
||||||
|
--- a/sys-utils/lsipc.c
|
||||||
|
+++ b/sys-utils/lsipc.c
|
||||||
|
@@ -717,16 +717,18 @@ static void do_sem(int id, struct lsipc_control *ctl, struct libscols_table *tb)
|
||||||
|
|
||||||
|
static void do_sem_global(struct lsipc_control *ctl, struct libscols_table *tb)
|
||||||
|
{
|
||||||
|
- struct sem_data *semds, *semdsp;
|
||||||
|
+ struct sem_data *semds;
|
||||||
|
struct ipc_limits lim;
|
||||||
|
int nsems = 0, nsets = 0;
|
||||||
|
|
||||||
|
ipc_sem_get_limits(&lim);
|
||||||
|
|
||||||
|
if (ipc_sem_get_info(-1, &semds) > 0) {
|
||||||
|
- for (semdsp = semds; semdsp->next != NULL; semdsp = semdsp->next) {
|
||||||
|
+ struct sem_data *p;
|
||||||
|
+
|
||||||
|
+ for (p = semds; p->next != NULL; p = p->next) {
|
||||||
|
++nsets;
|
||||||
|
- nsems += semds->sem_nsems;
|
||||||
|
+ nsems += p->sem_nsems;
|
||||||
|
}
|
||||||
|
ipc_sem_free_info(semds);
|
||||||
|
}
|
||||||
|
--
|
||||||
|
2.33.0
|
||||||
|
|
||||||
67
backport-lslocks-fix-buffer-overflow.patch
Normal file
67
backport-lslocks-fix-buffer-overflow.patch
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
From c7e20a87573202ed5288447b557cb7cff1b40a17 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Karel Zak <kzak@redhat.com>
|
||||||
|
Date: Thu, 29 Feb 2024 20:43:35 +0100
|
||||||
|
Subject: [PATCH] lslocks: fix buffer overflow
|
||||||
|
|
||||||
|
* don't use memset() to init variables
|
||||||
|
* use xreaddir() to reduce code
|
||||||
|
* use ssize_t for readlinkat() return value to avoid buffer overflow
|
||||||
|
|
||||||
|
Signed-off-by: Karel Zak <kzak@redhat.com>
|
||||||
|
(cherry picked from commit f030775ffeaa8627c88434f7d0cba1a454aa0ffa)
|
||||||
|
---
|
||||||
|
misc-utils/lslocks.c | 16 +++++++---------
|
||||||
|
1 file changed, 7 insertions(+), 9 deletions(-)
|
||||||
|
|
||||||
|
diff --git a/misc-utils/lslocks.c b/misc-utils/lslocks.c
|
||||||
|
index b14d419..06c707a 100644
|
||||||
|
--- a/misc-utils/lslocks.c
|
||||||
|
+++ b/misc-utils/lslocks.c
|
||||||
|
@@ -45,6 +45,7 @@
|
||||||
|
#include "closestream.h"
|
||||||
|
#include "optutils.h"
|
||||||
|
#include "procutils.h"
|
||||||
|
+#include "fileutils.h"
|
||||||
|
|
||||||
|
/* column IDs */
|
||||||
|
enum {
|
||||||
|
@@ -164,13 +165,12 @@ static char *get_filename_sz(ino_t inode, pid_t lock_pid, size_t *size)
|
||||||
|
struct stat sb;
|
||||||
|
struct dirent *dp;
|
||||||
|
DIR *dirp;
|
||||||
|
- size_t len;
|
||||||
|
+ size_t sz;
|
||||||
|
int fd;
|
||||||
|
- char path[PATH_MAX], sym[PATH_MAX], *ret = NULL;
|
||||||
|
+ char path[PATH_MAX] = { 0 },
|
||||||
|
+ sym[PATH_MAX] = { 0 }, *ret = NULL;
|
||||||
|
|
||||||
|
*size = 0;
|
||||||
|
- memset(path, 0, sizeof(path));
|
||||||
|
- memset(sym, 0, sizeof(sym));
|
||||||
|
|
||||||
|
/*
|
||||||
|
* We know the pid so we don't have to
|
||||||
|
@@ -181,16 +181,14 @@ static char *get_filename_sz(ino_t inode, pid_t lock_pid, size_t *size)
|
||||||
|
if (!(dirp = opendir(path)))
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
- if ((len = strlen(path)) >= (sizeof(path) - 2))
|
||||||
|
+ if ((sz = strlen(path)) >= (sizeof(path) - 2))
|
||||||
|
goto out;
|
||||||
|
|
||||||
|
if ((fd = dirfd(dirp)) < 0 )
|
||||||
|
goto out;
|
||||||
|
|
||||||
|
- while ((dp = readdir(dirp))) {
|
||||||
|
- if (!strcmp(dp->d_name, ".") ||
|
||||||
|
- !strcmp(dp->d_name, ".."))
|
||||||
|
- continue;
|
||||||
|
+ while ((dp = xreaddir(dirp))) {
|
||||||
|
+ ssize_t len;
|
||||||
|
|
||||||
|
errno = 0;
|
||||||
|
|
||||||
|
--
|
||||||
|
2.33.0
|
||||||
|
|
||||||
@ -3,7 +3,7 @@
|
|||||||
|
|
||||||
Name: util-linux
|
Name: util-linux
|
||||||
Version: 2.37.2
|
Version: 2.37.2
|
||||||
Release: 30
|
Release: 31
|
||||||
Summary: A random collection of Linux utilities
|
Summary: A random collection of Linux utilities
|
||||||
License: GPLv2 and GPLv2+ and LGPLv2+ and BSD with advertising and Public Domain
|
License: GPLv2 and GPLv2+ and LGPLv2+ and BSD with advertising and Public Domain
|
||||||
URL: https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git
|
URL: https://git.kernel.org/pub/scm/utils/util-linux/util-linux.git
|
||||||
@ -146,6 +146,10 @@ Patch6124: backport-more-fix-poll-use.patch
|
|||||||
Patch6125: backport-CVE-2024-28085.patch
|
Patch6125: backport-CVE-2024-28085.patch
|
||||||
Patch6126: backport-lscpu-don-t-use-NULL-sharedmap.patch
|
Patch6126: backport-lscpu-don-t-use-NULL-sharedmap.patch
|
||||||
Patch6127: backport-lscpu-use-topology-maps-in-more-robust-way.patch
|
Patch6127: backport-lscpu-use-topology-maps-in-more-robust-way.patch
|
||||||
|
Patch6128: backport-hexdump-check-blocksize-when-display-data.patch
|
||||||
|
Patch6129: backport-lslocks-fix-buffer-overflow.patch
|
||||||
|
Patch6130: backport-last-avoid-out-of-bounds-array-access.patch
|
||||||
|
Patch6131: backport-lsipc-fix-semaphore-USED-counter.patch
|
||||||
|
|
||||||
Patch9000: Add-check-to-resolve-uname26-version-test-failed.patch
|
Patch9000: Add-check-to-resolve-uname26-version-test-failed.patch
|
||||||
Patch9001: SKIPPED-no-root-permissions-test.patch
|
Patch9001: SKIPPED-no-root-permissions-test.patch
|
||||||
@ -519,6 +523,16 @@ fi
|
|||||||
%{_mandir}/man8/{swapoff.8*,swapon.8*,switch_root.8*,umount.8*,wdctl.8.gz,wipefs.8*,zramctl.8*}
|
%{_mandir}/man8/{swapoff.8*,swapon.8*,switch_root.8*,umount.8*,wdctl.8.gz,wipefs.8*,zramctl.8*}
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Tue May 7 2024 zhangyao <zhangyao108@huawei.com> - 2.37.2-31
|
||||||
|
- Type:bugfix
|
||||||
|
- CVE:NA
|
||||||
|
- SUG:NA
|
||||||
|
- DESC:sync community patches
|
||||||
|
backport-hexdump-check-blocksize-when-display-data.patch
|
||||||
|
backport-lslocks-fix-buffer-overflow.patch
|
||||||
|
backport-last-avoid-out-of-bounds-array-access.patch
|
||||||
|
backport-lsipc-fix-semaphore-USED-counter.patch
|
||||||
|
|
||||||
* Sun Apr 28 2024 zhangyao <zhangyao108@huawei.com> - 2.37.2-30
|
* Sun Apr 28 2024 zhangyao <zhangyao108@huawei.com> - 2.37.2-30
|
||||||
- Type:bugfix
|
- Type:bugfix
|
||||||
- CVE:NA
|
- CVE:NA
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user