[util-linux/f17] 2.21.2-3: #885314 #864227
kzak
kzak at fedoraproject.org
Sun Feb 3 16:38:28 UTC 2013
commit 8027d4fd80456d570e5f4065de64cbb24f957624
Author: Karel Zak <kzak at redhat.com>
Date: Sun Feb 3 17:38:16 2013 +0100
2.21.2-3: #885314 #864227
Signed-off-by: Karel Zak <kzak at redhat.com>
...not-segfault-when-iterating-over-an-empty.patch | 30 +++++++
mount-add-verbose-messages.patch | 81 ++++++++++++++++++++
util-linux.spec | 11 +++-
3 files changed, 121 insertions(+), 1 deletions(-)
---
diff --git a/hexdump-do-not-segfault-when-iterating-over-an-empty.patch b/hexdump-do-not-segfault-when-iterating-over-an-empty.patch
new file mode 100644
index 0000000..9aebed5
--- /dev/null
+++ b/hexdump-do-not-segfault-when-iterating-over-an-empty.patch
@@ -0,0 +1,30 @@
+diff --git a/text-utils/parse.c b/text-utils/parse.c
+index 5f1e2bd..bd96961 100644
+--- a/text-utils/parse.c
++++ b/text-utils/parse.c
+@@ -421,13 +421,15 @@ isint2: switch(fu->bcnt) {
+ !(fu->flags&F_SETREP) && fu->bcnt)
+ fu->reps += (blocksize - fs->bcnt) / fu->bcnt;
+ if (fu->reps > 1) {
+- for (pr = fu->nextpr;; pr = pr->nextpr)
+- if (!pr->nextpr)
+- break;
+- for (p1 = pr->fmt, p2 = NULL; *p1; ++p1)
+- p2 = isspace((unsigned char)*p1) ? p1 : NULL;
+- if (p2)
+- pr->nospace = p2;
++ if (fu->nextpr) {
++ for (pr = fu->nextpr; ; pr = pr->nextpr)
++ if (!pr->nextpr)
++ break;
++ for (p1 = pr->fmt, p2 = NULL; *p1; ++p1)
++ p2 = isspace((unsigned char)*p1) ? p1 : NULL;
++ if (p2)
++ pr->nospace = p2;
++ }
+ }
+ }
+ }
+--
+1.8.1
+
diff --git a/mount-add-verbose-messages.patch b/mount-add-verbose-messages.patch
new file mode 100644
index 0000000..8cd07f3
--- /dev/null
+++ b/mount-add-verbose-messages.patch
@@ -0,0 +1,81 @@
+diff -up util-linux-2.21.2/sys-utils/mount.c.orig util-linux-2.21.2/sys-utils/mount.c
+--- util-linux-2.21.2/sys-utils/mount.c.orig 2013-02-03 17:33:05.248888432 +0100
++++ util-linux-2.21.2/sys-utils/mount.c 2013-02-03 17:34:31.856571865 +0100
+@@ -238,6 +238,29 @@ static int mount_all(struct libmnt_conte
+ return rc;
+ }
+
++static void success_message(struct libmnt_context *cxt)
++{
++ unsigned long mflags = 0;
++ const char *tgt, *src;
++
++ if (mnt_context_helper_executed(cxt)
++ || mnt_context_get_status(cxt) != 1)
++ return;
++
++ mnt_context_get_mflags(cxt, &mflags);
++ tgt = mnt_context_get_target(cxt);
++ src = mnt_context_get_source(cxt);
++
++ if (mflags & MS_MOVE)
++ warnx(_("%s moved to %s"), src, tgt);
++ else if (mflags & MS_BIND)
++ warnx(_("%s binded on %s"), src, tgt);
++ else if (mflags & MS_PROPAGATION)
++ warnx(_("%s propagation flags changed"), tgt);
++ else
++ warnx(_("%s mounted on %s"), src, tgt);
++}
++
+ /*
+ * Handles generic errors like ENOMEM, ...
+ *
+@@ -913,6 +936,8 @@ int main(int argc, char **argv)
+ rc = mnt_context_mount(cxt);
+ rc = mk_exit_code(cxt, rc);
+
++ if (rc == MOUNT_EX_SUCCESS && mnt_context_is_verbose(cxt))
++ success_message(cxt);
+ done:
+ free(srcbuf);
+ mnt_free_context(cxt);
+diff -up util-linux-2.21.2/sys-utils/umount.c.orig util-linux-2.21.2/sys-utils/umount.c
+--- util-linux-2.21.2/sys-utils/umount.c.orig 2012-05-25 11:44:59.043195664 +0200
++++ util-linux-2.21.2/sys-utils/umount.c 2013-02-03 17:33:05.266888574 +0100
+@@ -119,6 +119,25 @@ static void __attribute__((__noreturn__)
+ errx(MOUNT_EX_USAGE, _("only root can do that"));
+ }
+
++static void success_message(struct libmnt_context *cxt)
++{
++ const char *tgt, *src;
++
++ if (mnt_context_helper_executed(cxt)
++ || mnt_context_get_status(cxt) != 1)
++ return;
++
++ tgt = mnt_context_get_target(cxt);
++ if (!tgt)
++ return;
++
++ src = mnt_context_get_source(cxt);
++ if (src)
++ warnx(_("%s (%s) unmounted"), tgt, src);
++ else
++ warnx(_("%s unmounted"), tgt);
++}
++
+ /*
+ * Handles generic errors like ENOMEM, ...
+ *
+@@ -273,6 +292,9 @@ static int umount_one(struct libmnt_cont
+ rc = mnt_context_umount(cxt);
+ rc = mk_exit_code(cxt, rc);
+
++ if (rc == MOUNT_EX_SUCCESS && mnt_context_is_verbose(cxt))
++ success_message(cxt);
++
+ mnt_reset_context(cxt);
+ return rc;
+ }
diff --git a/util-linux.spec b/util-linux.spec
index e6b72ef..c567318 100644
--- a/util-linux.spec
+++ b/util-linux.spec
@@ -2,7 +2,7 @@
Summary: A collection of basic system utilities
Name: util-linux
Version: 2.21.2
-Release: 3%{?dist}
+Release: 4%{?dist}
License: GPLv2 and GPLv2+ and GPLv3+ and LGPLv2+ and BSD with advertising and Public Domain
Group: System Environment/Base
URL: http://kernel.org/~kzak/util-linux/
@@ -87,6 +87,11 @@ Patch6: util-linux-2.21-uuidd-rundir.patch
Patch7: util-linux-2.21-mount-commas.patch
# 875461 - read_topology: Process /usr/bin/lscpu was killed by signal 8 (SIGFPE)
Patch8: util-linux-2.21-lscpu-SIGFPE.patch
+# 885314 - hexdump segfault
+Patch9: hexdump-do-not-segfault-when-iterating-over-an-empty.patch
+# 864227 - mount option -v or --verbose does not work
+Patch10: mount-add-verbose-messages.patch
+
%description
The util-linux package contains a large variety of low-level system
@@ -719,6 +724,10 @@ fi
%changelog
+* Sun Feb 3 2013 Karel Zak <kzak at redhat.com> 2.21.2-4
+- fix #885314 - hexdump segfault
+- fix #864227 - mount option -v or --verbose does not work
+
* Fri Nov 16 2012 Karel Zak <kzak at redhat.com> 2.21.2-3
- fix #873983 - mount: /dev/mapper/myvg-usrlv is already mounted or /usr busy
- fix #875461 - read_topology: Process /usr/bin/lscpu was killed by signal 8 (SIGFPE)
More information about the scm-commits
mailing list