diff --git a/2.36-login-lastlog-create.patch b/2.36-login-lastlog-create.patch deleted file mode 100644 index e2523d3aaadd1d9cb4a527db65491ac04a3566f5..0000000000000000000000000000000000000000 --- a/2.36-login-lastlog-create.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -up util-linux-2.36/login-utils/login.c.kzak util-linux-2.36/login-utils/login.c ---- util-linux-2.36/login-utils/login.c.kzak 2020-07-23 14:13:26.777030764 +0200 -+++ util-linux-2.36/login-utils/login.c 2020-07-23 14:11:22.793686983 +0200 -@@ -585,7 +585,7 @@ static void log_lastlog(struct login_con - sa.sa_handler = SIG_IGN; - sigaction(SIGXFSZ, &sa, &oldsa_xfsz); - -- fd = open(_PATH_LASTLOG, O_RDWR, 0); -+ fd = open(_PATH_LASTLOG, O_RDWR | O_CREAT, 0); - if (fd < 0) - goto done; - offset = cxt->pwd->pw_uid * sizeof(ll); diff --git a/Add-check-to-resolve-uname26-version-test-failed.patch b/Add-check-to-resolve-uname26-version-test-failed.patch deleted file mode 100644 index 193c6ede090f9e23e675fd4980dd7868a34576bf..0000000000000000000000000000000000000000 --- a/Add-check-to-resolve-uname26-version-test-failed.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 72466ac801928c205604b99fe01f830809bda930 Mon Sep 17 00:00:00 2001 -From: Liquor -Date: Thu, 17 Dec 2020 15:04:56 +0800 -Subject: [PATCH] Add check to resolve uname26-version test failed - -The uname command is modified in packages uname-build-checks, -but the uname26-version test case needs to use the uname -r query -result.As a result,the test fails. -So we add a judgment to check whether uname-build-checks is installed. ---- - tests/ts/misc/setarch | 7 ++++++- - 1 file changed, 6 insertions(+), 1 deletion(-) - -diff --git a/tests/ts/misc/setarch b/tests/ts/misc/setarch -index 7c99cca..25d02c1 100755 ---- a/tests/ts/misc/setarch -+++ b/tests/ts/misc/setarch -@@ -77,7 +77,12 @@ ts_finalize_subtest "$finmsg" - # conditional subtest - if [ "$uname26_seems_supported" = "yes" ]; then - ts_init_subtest uname26-version -- tmp=$($TS_CMD_SETARCH $ARCH --uname-2.6 uname -r) -+ rpm -qa | grep -q "uname-build-checks" -+ if [ $? -eq 0 ]; then -+ tmp=$($TS_CMD_SETARCH $ARCH --uname-2.6 uname.bin -r) -+ else -+ tmp=$($TS_CMD_SETARCH $ARCH --uname-2.6 uname -r) -+ fi - if echo "$tmp" | grep -q "^2\.6\."; then - echo "kernel version changed to 2.6" >> $TS_OUTPUT - else --- -2.27.0 - diff --git a/Do-not-excute-Utmp-testcases.patch b/Do-not-excute-Utmp-testcases.patch deleted file mode 100644 index 8850484577259aaa33fad2b97e42e4d769c8d068..0000000000000000000000000000000000000000 --- a/Do-not-excute-Utmp-testcases.patch +++ /dev/null @@ -1,26 +0,0 @@ -From b629f0e02c2ac6283012131404380acc56beb5e8 Mon Sep 17 00:00:00 2001 -From: yang_zhuang_zhuang -Date: Mon, 2 Nov 2020 17:17:13 +0800 -Subject: Do not excute Utmp testcases. - -The compilation environment and test cases are vulnerable.As a result,the Utmp testcase fail to be compiled.Therefore,the Utmp testcases are commented out. ---- - tests/commands.sh | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tests/commands.sh b/tests/commands.sh -index 5f34452..ad3edb2 100644 ---- a/tests/commands.sh -+++ b/tests/commands.sh -@@ -100,7 +100,7 @@ TS_CMD_SWAPOFF=${TS_CMD_SWAPOFF:-"${ts_commandsdir}swapoff"} - TS_CMD_SWAPON=${TS_CMD_SWAPON:-"${ts_commandsdir}swapon"} - TS_CMD_UL=${TS_CMD_UL-"${ts_commandsdir}ul"} - TS_CMD_UMOUNT=${TS_CMD_UMOUNT:-"${ts_commandsdir}umount"} --TS_CMD_UTMPDUMP=${TS_CMD_UTMPDUMP-"${ts_commandsdir}utmpdump"} -+#TS_CMD_UTMPDUMP=${TS_CMD_UTMPDUMP-"${ts_commandsdir}utmpdump"} - TS_CMD_UUIDD=${TS_CMD_UUIDD-"${ts_commandsdir}uuidd"} - TS_CMD_UUIDGEN=${TS_CMD_UUIDGEN-"${ts_commandsdir}uuidgen"} - TS_CMD_UUIDPARSE=${TS_CMD_UUIDPARSE-"${ts_commandsdir}uuidparse"} --- -1.8.3.1 - diff --git a/backport-CVE-2021-37600.patch b/backport-CVE-2021-37600.patch deleted file mode 100644 index 139656e7ca6500cb73b8de369eff78e6b71eb135..0000000000000000000000000000000000000000 --- a/backport-CVE-2021-37600.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 1c9143d0c1f979c3daf10e1c37b5b1e916c22a1c Mon Sep 17 00:00:00 2001 -From: Karel Zak -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 ---- - 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/backport-libblkid-improve-debug-for-proc-partitions.patch b/backport-libblkid-improve-debug-for-proc-partitions.patch deleted file mode 100644 index 718444700b5f36c93c18249aa93be6dab4de4cda..0000000000000000000000000000000000000000 --- a/backport-libblkid-improve-debug-for-proc-partitions.patch +++ /dev/null @@ -1,75 +0,0 @@ -From e9131920485962f33bd32b492cb93078ee7a3c34 Mon Sep 17 00:00:00 2001 -From: Karel Zak -Date: Wed, 30 Sep 2020 11:37:09 +0200 -Subject: [PATCH] libblkid: improve debug for /proc/partitions - -Signed-off-by: Karel Zak ---- - libblkid/src/devname.c | 15 +++++++++------ - 1 file changed, 9 insertions(+), 6 deletions(-) - -diff --git a/libblkid/src/devname.c b/libblkid/src/devname.c -index c58b784..8f2d89a 100644 ---- a/libblkid/src/devname.c -+++ b/libblkid/src/devname.c -@@ -351,7 +351,7 @@ static void lvm_probe_all(blkid_cache cache, int only_if_new) - lv_name); - dev = lvm_get_devno(lvm_device); - sprintf(lvm_device, "%s/%s", vg_name, lv_name); -- DBG(DEVNAME, ul_debug("LVM dev %s: devno 0x%04X", -+ DBG(DEVNAME, ul_debug("Probe LVM dev %s: devno 0x%04X", - lvm_device, - (unsigned int) dev)); - probe_one(cache, lvm_device, dev, BLKID_PRI_LVM, -@@ -383,7 +383,7 @@ evms_probe_all(blkid_cache cache, int only_if_new) - &ma, &mi, &sz, device) != 4) - continue; - -- DBG(DEVNAME, ul_debug("Checking partition %s (%d, %d)", -+ DBG(DEVNAME, ul_debug("Probe EVMS partition %s (%d, %d)", - device, ma, mi)); - - probe_one(cache, device, makedev(ma, mi), BLKID_PRI_EVMS, -@@ -433,7 +433,7 @@ ubi_probe_all(blkid_cache cache, int only_if_new) - - if (!S_ISCHR(st.st_mode) || !minor(dev)) - continue; -- DBG(DEVNAME, ul_debug("UBI vol %s/%s: devno 0x%04X", -+ DBG(DEVNAME, ul_debug("Probe UBI vol %s/%s: devno 0x%04X", - *dirname, name, (int) dev)); - probe_one(cache, name, dev, BLKID_PRI_UBI, only_if_new, 0); - } -@@ -506,7 +506,7 @@ static int probe_all(blkid_cache cache, int only_if_new) - - /* probably partition, so check */ - if (!iswhole[which]) { -- DBG(DEVNAME, ul_debug(" partition dev %s, devno 0x%04X", -+ DBG(DEVNAME, ul_debug(" Probe partition dev %s, devno 0x%04X", - ptname, (unsigned int) devs[which])); - - if (sz > 1) -@@ -545,7 +545,7 @@ static int probe_all(blkid_cache cache, int only_if_new) - * check last as well. - */ - if (lens[last] && strncmp(ptnames[last], ptname, lens[last]) != 0) { -- DBG(DEVNAME, ul_debug(" whole dev %s, devno 0x%04X", -+ DBG(DEVNAME, ul_debug(" Probe whole dev %s, devno 0x%04X", - ptnames[last], (unsigned int) devs[last])); - probe_one(cache, ptnames[last], devs[last], 0, - only_if_new, 0); -@@ -555,8 +555,11 @@ static int probe_all(blkid_cache cache, int only_if_new) - } - - /* Handle the last device if it wasn't partitioned */ -- if (lens[which]) -+ if (lens[which]) { -+ DBG(DEVNAME, ul_debug(" Probe whole dev %s, devno 0x%04X", -+ ptname, (unsigned int) devs[which])); - probe_one(cache, ptname, devs[which], 0, only_if_new, 0); -+ } - - fclose(proc); - blkid_flush_cache(cache); --- -1.8.3.1 - diff --git a/backport-libblkid-use-sys-to-read-all-block-devices.patch b/backport-libblkid-use-sys-to-read-all-block-devices.patch deleted file mode 100644 index 4eea71c0b805131a5c179411895ccf71e236d7a7..0000000000000000000000000000000000000000 --- a/backport-libblkid-use-sys-to-read-all-block-devices.patch +++ /dev/null @@ -1,414 +0,0 @@ -From 8d3f9430c59416e4c1eddc899578158a7a1ed414 Mon Sep 17 00:00:00 2001 -From: Karel Zak -Date: Wed, 7 Oct 2020 13:49:45 +0200 -Subject: [PATCH] libblkid: use /sys to read all block devices - -The old implementation uses /proc/partitions where devices are -filtered by kernel (missing devices with ext_range=1 and removable -devices). - -The problem with the old implementation is whole-disk heuristic based -on device name, order of devices, etc. - -The new implementation use the same code to read also removable -devices. - -Addresses: https://github.com/karelzak/util-linux/issues/1151 -Signed-off-by: Karel Zak ---- - lib/sysfs.c | 36 +++++--- - libblkid/src/blkidP.h | 2 +- - libblkid/src/devname.c | 235 +++++++++++++++++++++---------------------------- - 3 files changed, 128 insertions(+), 145 deletions(-) - -diff --git a/lib/sysfs.c b/lib/sysfs.c -index 5b4de2c..0c360ce 100644 ---- a/lib/sysfs.c -+++ b/lib/sysfs.c -@@ -874,7 +874,7 @@ int sysfs_devname_is_hidden(const char *prefix, const char *name) - dev_t __sysfs_devname_to_devno(const char *prefix, const char *name, const char *parent) - { - char buf[PATH_MAX]; -- char *_name = NULL; /* name as encoded in sysfs */ -+ char *_name = NULL, *_parent = NULL; /* name as encoded in sysfs */ - dev_t dev = 0; - int len; - -@@ -901,19 +901,20 @@ dev_t __sysfs_devname_to_devno(const char *prefix, const char *name, const char - goto done; - sysfs_devname_dev_to_sys(_name); - -- if (parent && strncmp("dm-", name, 3) != 0) { -- /* -- * Create path to /sys/block///dev -- */ -- char *_parent = strdup(parent); -- -+ if (parent) { -+ _parent = strdup(parent); - if (!_parent) - goto done; -+ } -+ -+ if (parent && strncmp("dm-", name, 3) != 0) { -+ /* -+ * Create path to /sys/block///dev -+ */ - sysfs_devname_dev_to_sys(_parent); - len = snprintf(buf, sizeof(buf), - "%s" _PATH_SYS_BLOCK "/%s/%s/dev", - prefix, _parent, _name); -- free(_parent); - if (len < 0 || (size_t) len >= sizeof(buf)) - goto done; - -@@ -934,10 +935,22 @@ dev_t __sysfs_devname_to_devno(const char *prefix, const char *name, const char - goto done; - dev = read_devno(buf); - -+ /* -+ * Read from /sys/block///dev -+ */ -+ if (!dev && parent && startswith(name, parent)) { -+ len = snprintf(buf, sizeof(buf), -+ "%s" _PATH_SYS_BLOCK "/%s/%s/dev", -+ prefix, _parent, _name); -+ if (len < 0 || (size_t) len >= sizeof(buf)) -+ goto done; -+ dev = read_devno(buf); -+ } -+ -+ /* -+ * Read from /sys/block//device/dev -+ */ - if (!dev) { -- /* -- * Read from /sys/block//device/dev -- */ - len = snprintf(buf, sizeof(buf), - "%s" _PATH_SYS_BLOCK "/%s/device/dev", - prefix, _name); -@@ -947,6 +960,7 @@ dev_t __sysfs_devname_to_devno(const char *prefix, const char *name, const char - } - done: - free(_name); -+ free(_parent); - return dev; - } - -diff --git a/libblkid/src/blkidP.h b/libblkid/src/blkidP.h -index 802a1b3..fe3736f 100644 ---- a/libblkid/src/blkidP.h -+++ b/libblkid/src/blkidP.h -@@ -301,7 +301,7 @@ struct blkid_struct_cache - #define BLKID_PROBE_NONE 1 - - #define BLKID_ERR_IO 5 --#define BLKID_ERR_PROC 9 -+#define BLKID_ERR_SYSFS 9 - #define BLKID_ERR_MEM 12 - #define BLKID_ERR_CACHE 14 - #define BLKID_ERR_DEV 19 -diff --git a/libblkid/src/devname.c b/libblkid/src/devname.c -index 8f2d89a..4b9df5a 100644 ---- a/libblkid/src/devname.c -+++ b/libblkid/src/devname.c -@@ -39,6 +39,7 @@ - #include "canonicalize.h" /* $(top_srcdir)/include */ - #include "pathnames.h" - #include "sysfs.h" -+#include "fileutils.h" - - /* - * Find a dev struct in the cache by device name, if available. -@@ -442,178 +443,146 @@ ubi_probe_all(blkid_cache cache, int only_if_new) - } - - /* -- * Read the device data for all available block devices in the system. -+ * This function uses /sys to read all block devices in way compatible with -+ * /proc/partitions (like the original libblkid implementation) - */ --static int probe_all(blkid_cache cache, int only_if_new) -+static int -+sysfs_probe_all(blkid_cache cache, int only_if_new, int only_removable) - { -- FILE *proc; -- char line[1024]; -- char ptname0[128 + 1], ptname1[128 + 1], *ptname = NULL; -- char *ptnames[2]; -- dev_t devs[2] = { 0, 0 }; -- int iswhole[2] = { 0, 0 }; -- int ma, mi; -- unsigned long long sz; -- int lens[2] = { 0, 0 }; -- int which = 0, last = 0; -- struct list_head *p, *pnext; -+ DIR *sysfs; -+ struct dirent *dev; - -- ptnames[0] = ptname0; -- ptnames[1] = ptname1; -+ sysfs = opendir(_PATH_SYS_BLOCK); -+ if (!sysfs) -+ return -BLKID_ERR_SYSFS; - -- if (!cache) -- return -BLKID_ERR_PARAM; -+ /* scan /sys/block */ -+ while ((dev = xreaddir(sysfs))) { -+ DIR *dir = NULL; -+ dev_t devno; -+ size_t nparts = 0; -+ unsigned int maxparts = 0, removable = 0; -+ struct dirent *part; -+ struct path_cxt *pc = NULL; -+ uint64_t size = 0; - -- if (cache->bic_flags & BLKID_BIC_FL_PROBED && -- time(NULL) - cache->bic_time < BLKID_PROBE_INTERVAL) -- return 0; -+ DBG(DEVNAME, ul_debug("checking %s", dev->d_name)); - -- blkid_read_cache(cache); -- evms_probe_all(cache, only_if_new); --#ifdef VG_DIR -- lvm_probe_all(cache, only_if_new); --#endif -- ubi_probe_all(cache, only_if_new); -+ devno = sysfs_devname_to_devno(dev->d_name); -+ if (!devno) -+ goto next; -+ pc = ul_new_sysfs_path(devno, NULL, NULL); -+ if (!pc) -+ goto next; -+ -+ if (ul_path_read_u64(pc, &size, "size") != 0) -+ size = 0; -+ if (ul_path_read_u32(pc, &removable, "removable") != 0) -+ removable = 0; -+ -+ /* ingnore empty devices */ -+ if (!size) -+ goto next; -+ -+ /* accept removeable if only removable requested */ -+ if (only_removable) { -+ if (!removable) -+ goto next; -+ -+ /* emulate /proc/partitions -+ * -- ignore empty devices and non-partitionable removable devices */ -+ } else { -+ if (ul_path_read_u32(pc, &maxparts, "ext_range") != 0) -+ maxparts = 0; -+ if (!maxparts && removable) -+ goto next; -+ } - -- proc = fopen(PROC_PARTITIONS, "r" UL_CLOEXECSTR); -- if (!proc) -- return -BLKID_ERR_PROC; -+ DBG(DEVNAME, ul_debug("read device name %s", dev->d_name)); - -- while (fgets(line, sizeof(line), proc)) { -- last = which; -- which ^= 1; -- ptname = ptnames[which]; -+ dir = ul_path_opendir(pc, NULL); -+ if (!dir) -+ goto next; - -- if (sscanf(line, " %d %d %llu %128[^\n ]", -- &ma, &mi, &sz, ptname) != 4) -- continue; -- devs[which] = makedev(ma, mi); -- -- DBG(DEVNAME, ul_debug("read device name %s", ptname)); -- -- /* Skip whole disk devs unless they have no partitions. -- * If base name of device has changed, also -- * check previous dev to see if it didn't have a partn. -- * heuristic: partition name ends in a digit, & partition -- * names contain whole device name as substring. -- * -- * Skip extended partitions. -- * heuristic: size is 1 -- */ -+ /* read /sys/block// do get partitions */ -+ while ((part = xreaddir(dir))) { -+ dev_t partno; - -- lens[which] = strlen(ptname); -- iswhole[which] = sysfs_devno_is_wholedisk(devs[which]); -+ if (!sysfs_blkdev_is_partition_dirent(dir, part, dev->d_name)) -+ continue; - -- /* probably partition, so check */ -- if (!iswhole[which]) { -- DBG(DEVNAME, ul_debug(" Probe partition dev %s, devno 0x%04X", -- ptname, (unsigned int) devs[which])); -+ /* ignore extended partitions -+ * -- recount size to blocks like /proc/partitions */ -+ if (ul_path_readf_u64(pc, &size, "%s/size", part->d_name) == 0 -+ && (size >> 1) == 1) -+ continue; -+ partno = __sysfs_devname_to_devno(NULL, part->d_name, dev->d_name); -+ if (!partno) -+ continue; - -- if (sz > 1) -- probe_one(cache, ptname, devs[which], 0, -- only_if_new, 0); -- lens[which] = 0; /* mark as checked */ -+ DBG(DEVNAME, ul_debug(" Probe partition dev %s, devno 0x%04X", -+ part->d_name, (unsigned int) partno)); -+ nparts++; -+ probe_one(cache, part->d_name, partno, 0, only_if_new, 0); - } - -- /* -- * If last was a whole disk and we just found a partition -- * on it, remove the whole-disk dev from the cache if -- * it exists. -- */ -- if (lens[last] && iswhole[last] -- && !strncmp(ptnames[last], ptname, lens[last])) { -+ if (!nparts) { -+ /* add non-partitioned whole disk to cache */ -+ DBG(DEVNAME, ul_debug(" Probe whole dev %s, devno 0x%04X", -+ dev->d_name, (unsigned int) devno)); -+ probe_one(cache, dev->d_name, devno, 0, only_if_new, 0); -+ } else { -+ /* remove partitioned whole-disk from cache */ -+ struct list_head *p, *pnext; - - list_for_each_safe(p, pnext, &cache->bic_devs) { -- blkid_dev tmp; -- -- /* find blkid dev for the whole-disk devno */ -- tmp = list_entry(p, struct blkid_struct_dev, -- bid_devs); -- if (tmp->bid_devno == devs[last]) { -- DBG(DEVNAME, ul_debug(" freeing %s", -- tmp->bid_name)); -+ blkid_dev tmp = list_entry(p, struct blkid_struct_dev, -+ bid_devs); -+ if (tmp->bid_devno == devno) { -+ DBG(DEVNAME, ul_debug(" freeing %s", tmp->bid_name)); - blkid_free_dev(tmp); - cache->bic_flags |= BLKID_BIC_FL_CHANGED; - break; - } - } -- lens[last] = 0; /* mark as checked */ -- } -- /* -- * If last was not checked because it looked like a whole-disk -- * dev, and the device's base name has changed, -- * check last as well. -- */ -- if (lens[last] && strncmp(ptnames[last], ptname, lens[last]) != 0) { -- DBG(DEVNAME, ul_debug(" Probe whole dev %s, devno 0x%04X", -- ptnames[last], (unsigned int) devs[last])); -- probe_one(cache, ptnames[last], devs[last], 0, -- only_if_new, 0); -- -- lens[last] = 0; /* mark as checked */ - } -+ next: -+ if (dir) -+ closedir(dir); -+ if (pc) -+ ul_unref_path(pc); - } - -- /* Handle the last device if it wasn't partitioned */ -- if (lens[which]) { -- DBG(DEVNAME, ul_debug(" Probe whole dev %s, devno 0x%04X", -- ptname, (unsigned int) devs[which])); -- probe_one(cache, ptname, devs[which], 0, only_if_new, 0); -- } -- -- fclose(proc); -- blkid_flush_cache(cache); -+ closedir(sysfs); - return 0; - } - --/* Don't use it by default -- it's pretty slow (because cdroms, floppy, ...) -+/* -+ * Read the device data for all available block devices in the system. - */ --static int probe_all_removable(blkid_cache cache) -+static int probe_all(blkid_cache cache, int only_if_new) - { -- struct path_cxt *pc; -- DIR *dir; -- struct dirent *d; -- - if (!cache) - return -BLKID_ERR_PARAM; - -- dir = opendir(_PATH_SYS_BLOCK); -- if (!dir) -- return -BLKID_ERR_PROC; -- -- pc = ul_new_path(NULL); -+ if (cache->bic_flags & BLKID_BIC_FL_PROBED && -+ time(NULL) - cache->bic_time < BLKID_PROBE_INTERVAL) -+ return 0; - -- while((d = readdir(dir))) { -- int removable = 0; -- dev_t devno; -+ blkid_read_cache(cache); - --#ifdef _DIRENT_HAVE_D_TYPE -- if (d->d_type != DT_UNKNOWN && d->d_type != DT_LNK) -- continue; -+ evms_probe_all(cache, only_if_new); -+#ifdef VG_DIR -+ lvm_probe_all(cache, only_if_new); - #endif -- if (d->d_name[0] == '.' && -- ((d->d_name[1] == 0) || -- ((d->d_name[1] == '.') && (d->d_name[2] == 0)))) -- continue; -- -- devno = sysfs_devname_to_devno(d->d_name); -- if (!devno) -- continue; -- -- if (sysfs_blkdev_init_path(pc, devno, NULL) == 0 -- && ul_path_read_s32(pc, &removable, "removable") != 0) -- removable = 0; -+ ubi_probe_all(cache, only_if_new); - -- if (removable) -- probe_one(cache, d->d_name, devno, 0, 0, 1); -- } -+ sysfs_probe_all(cache, only_if_new, 0); - -- ul_unref_path(pc); -- closedir(dir); -+ blkid_flush_cache(cache); - return 0; - } - -- - /** - * blkid_probe_all: - * @cache: cache handler -@@ -677,7 +646,7 @@ int blkid_probe_all_removable(blkid_cache cache) - int ret; - - DBG(PROBE, ul_debug("Begin blkid_probe_all_removable()")); -- ret = probe_all_removable(cache); -+ ret = sysfs_probe_all(cache, 0, 1); - DBG(PROBE, ul_debug("End blkid_probe_all_removable() [rc=%d]", ret)); - return ret; - } --- -1.8.3.1 - diff --git a/backport-libfdisk-make-fdisk_partname-more-robust.patch b/backport-libfdisk-make-fdisk_partname-more-robust.patch deleted file mode 100644 index 89990e86973820441eb087cf0de6a6553ab1a3f6..0000000000000000000000000000000000000000 --- a/backport-libfdisk-make-fdisk_partname-more-robust.patch +++ /dev/null @@ -1,22 +0,0 @@ -From 9f03ad60e58f7bdcac6a1046471a3374550ee384 Mon Sep 17 00:00:00 2001 -From: Karel Zak -Date: Thu, 13 Aug 2020 10:12:01 +0200 -Subject: [PATCH] libfdisk: make fdisk_partname() more robust - ---- - libfdisk/src/utils.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/libfdisk/src/utils.c b/libfdisk/src/utils.c -index 6056e7f1f..38ad23393 100644 ---- a/libfdisk/src/utils.c -+++ b/libfdisk/src/utils.c -@@ -142,7 +142,7 @@ char *fdisk_partname(const char *dev, size_t partno) - - /* devfs kludge - note: fdisk partition names are not supposed - to equal kernel names, so there is no reason to do this */ -- if (strcmp(dev + w - 4, "disc") == 0) { -+ if (endswith(dev, "disc")) { - w -= 4; - p = "part"; - } diff --git a/backport-libmount-fix-tab-parser-for-badly-terminated-lines.patch b/backport-libmount-fix-tab-parser-for-badly-terminated-lines.patch deleted file mode 100644 index e3dea87cb863607891dfe04d32025633609140c1..0000000000000000000000000000000000000000 --- a/backport-libmount-fix-tab-parser-for-badly-terminated-lines.patch +++ /dev/null @@ -1,66 +0,0 @@ -From 72f783d0ea5297e3fab22a93574aa63f421c5f69 Mon Sep 17 00:00:00 2001 -From: Karel Zak -Date: Mon, 17 Aug 2020 16:33:59 +0200 -Subject: [PATCH] libmount: fix tab parser for badly terminated lines - -Signed-off-by: Karel Zak ---- - libmount/src/tab_parse.c | 26 +++++++++++--------------- - 1 file changed, 11 insertions(+), 15 deletions(-) - -diff --git a/libmount/src/tab_parse.c b/libmount/src/tab_parse.c -index fa2d31b81..329987bcb 100644 ---- a/libmount/src/tab_parse.c -+++ b/libmount/src/tab_parse.c -@@ -481,7 +481,7 @@ static int is_terminated_by_blank(const char *str) - if (p == str) - return 1; /* only '\n' */ - p--; -- while (p >= str && (*p == ' ' || *p == '\t')) -+ while (p > str && (*p == ' ' || *p == '\t')) - p--; - return *p == '\n' ? 1 : 0; - } -@@ -553,22 +553,16 @@ static int mnt_table_parse_next(struct libmnt_parser *pa, - pa->line++; - s = strchr(pa->buf, '\n'); - if (!s) { -+ DBG(TAB, ul_debugobj(tb, "%s:%zu: no final newline", -+ pa->filename, pa->line)); -+ - /* Missing final newline? Otherwise an extremely */ - /* long line - assume file was corrupted */ -- if (feof(pa->f)) { -- DBG(TAB, ul_debugobj(tb, -- "%s: no final newline", pa->filename)); -- s = strchr(pa->buf, '\0'); -- } else { -- DBG(TAB, ul_debugobj(tb, -- "%s:%zu: missing newline at line", -- pa->filename, pa->line)); -- goto err; -- } -- } -+ if (feof(pa->f)) -+ s = memchr(pa->buf, '\0', pa->bufsiz); - - /* comments parser */ -- if (tb->comms -+ } else if (tb->comms - && (tb->fmt == MNT_FMT_GUESS || tb->fmt == MNT_FMT_FSTAB) - && is_comment_line(pa->buf)) { - do { -@@ -584,9 +578,11 @@ static int mnt_table_parse_next(struct libmnt_parser *pa, - - } - -+ if (!s) -+ goto err; - *s = '\0'; -- if (--s >= pa->buf && *s == '\r') -- *s = '\0'; -+ if (s > pa->buf && *(s - 1) == '\r') -+ *(--s) = '\0'; - s = (char *) skip_blank(pa->buf); - } while (*s == '\0' || *s == '#'); - diff --git a/util-linux-2.36.1.tar.xz b/util-linux-2.37.2.tar.xz similarity index 41% rename from util-linux-2.36.1.tar.xz rename to util-linux-2.37.2.tar.xz index 8d9ace96a01380b4dd9e487ab3cbca2a656c8fe8..21f3d625606a6a0f4069c7ad9770f6947cef129a 100644 Binary files a/util-linux-2.36.1.tar.xz and b/util-linux-2.37.2.tar.xz differ diff --git a/util-linux.spec b/util-linux.spec index 2e3a64fd5c95514a9cb6dad0b2638110afd99304..2daec0d8bf1f74568824b3d0b5fc545e53cf0ec3 100644 --- a/util-linux.spec +++ b/util-linux.spec @@ -2,8 +2,8 @@ %global upstream_major 2.36 Name: util-linux -Version: 2.36.1 -Release: 5 +Version: 2.37.2 +Release: 1 Summary: A random collection of Linux utilities 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 @@ -35,15 +35,6 @@ Provides: /bin/dmesg /bin/kill /bin/more /bin/mount /bin/umount /sbin/blki Provides: /sbin/blockdev /sbin/findfs /sbin/fsck /sbin/nologin Obsoletes: eject <= 2.1.5 rfkill <= 0.5 util-linux-ng < 2.19 hardlink <= 1:1.3-9 -Patch0: 2.36-login-lastlog-create.patch -Patch1: Do-not-excute-Utmp-testcases.patch -Patch2: backport-libfdisk-make-fdisk_partname-more-robust.patch -Patch3: backport-libmount-fix-tab-parser-for-badly-terminated-lines.patch -Patch4: backport-libblkid-improve-debug-for-proc-partitions.patch -Patch5: backport-libblkid-use-sys-to-read-all-block-devices.patch -Patch6000: backport-CVE-2021-37600.patch - -Patch9000: Add-check-to-resolve-uname26-version-test-failed.patch %description The util-linux package contains a random collection of files that @@ -301,7 +292,7 @@ fi %ghost %attr(0644,root,root) %verify(not md5 size mtime) /var/log/lastlog %ghost %verify(not md5 size mtime) %config(noreplace,missingok) /etc/mtab %{_unitdir}/fstrim.* -%{_bindir}/{cal,chrt,col,colcrt,colrm,column,chmem,dmesg,eject,fallocate,fincore,findmnt,choom} +%{_bindir}/{cal,chrt,col,colcrt,colrm,column,chmem,dmesg,eject,fallocate,fincore,findmnt,choom,uclampset} %{_bindir}/{flock,getopt,hexdump,ionice,ipcmk,ipcrm,ipcs,isosize,kill,last,lastb,logger,hardlink} %{_bindir}/{look,lsblk,lscpu,lsipc,lslocks,lslogins,lsmem,lsns,mcookie,mesg,more,mountpoint} %{_bindir}/{namei,nsenter,prlimit,raw,rename,renice,rev,script,scriptreplay,setarch,setpriv} @@ -369,11 +360,13 @@ fi %{_libdir}/{libfdisk.so,libsmartcols.so,libuuid.so,libblkid.so,libmount.so} %{_libdir}/pkgconfig/{fdisk.pc,smartcols.pc,uuid.pc,blkid.pc,mount.pc} -%files help -f %{name}-help.files +%files help %exclude %{_datadir}/doc/util-linux/getopt/* +%{_datadir}/bash-completion/completions/* +%{_docdir}/%{name}/getopt-example.* %doc README NEWS Documentation/deprecated.txt %doc %attr(0644,-,-) misc-utils/getopt-*.{bash,tcsh} -%{_mandir}/man1/{chfn.1*,chsh.1*,cal.1*,chrt.1*,col.1*,colcrt.1*,colrm.1*,column.1*,dmesg.1*,eject.1*} +%{_mandir}/man1/{chfn.1*,chsh.1*,cal.1*,chrt.1*,col.1*,colcrt.1*,colrm.1*,column.1*,dmesg.1*,eject.1*,uclampset.1*} %{_mandir}/man1/{fallocate.1*,fincore.1*,flock.1*,getopt.1*,hexdump.1*,ionice.1*,ipcmk.1*,ipcrm.1*,ipcs.1*} %{_mandir}/man1/{kill.1*,last.1*,lastb.1*,logger.1*,login.1*,look.1*,lscpu.1*,lsipc.1*,lslogins.1*,lsmem.1*} %{_mandir}/man1/{mcookie.1*,mesg.1*,more.1*,mountpoint.1*,namei.1*,nsenter.1*,prlimit.1*,rename.1*,renice.1*} @@ -391,6 +384,12 @@ fi %{_mandir}/man8/{swapoff.8*,swapon.8*,switch_root.8*,umount.8*,wdctl.8.gz,wipefs.8*,zramctl.8*} %changelog +* Mon Dec 27 2021 tianwei - 2.37.2-1 +- Type:enhancement +- ID:NA +- SUG:NA +- DESC:update version to 2.37.2 + * Tue Aug 10 2021 shixuantong - 2.36.1-5 - Type:CVE - ID:CVE-2021-37600