Accepting request 287963 from Base:System

1

OBS-URL: https://build.opensuse.org/request/show/287963
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/util-linux?expand=0&rev=198
This commit is contained in:
Dominique Leuenberger 2015-03-05 16:04:31 +00:00 committed by Git OBS Bridge
parent 80e621960b
commit 6850c8ad05
16 changed files with 360 additions and 418 deletions

View File

@ -1,11 +0,0 @@
--- klogconsole/klogconsole.c
+++ klogconsole/klogconsole.c
@@ -59,7 +59,7 @@
exit(1);
}
if( ioctl( vt, TIOCLINUX, &newvt ) ) {
- perror("ioctl(TIOCLINUX)");
+ /* shut up perror("ioctl(TIOCLINUX)"); */
exit(1);
}
close(vt);

View File

@ -1,27 +0,0 @@
--- klogconsole/Makefile
+++ klogconsole/Makefile
@@ -15,11 +15,11 @@
all: klogconsole
klogconsole: klogconsole.c
- $(CC) $(CFLAGS) -s -o $@ $<
+ $(CC) $(CFLAGS) -o $@ $<
clean:
$(RM) klogconsole
install: klogconsole klogconsole.man
- $(INSTALL) -s -m 0700 klogconsole $(DEST)/usr/sbin/
+ $(INSTALL) -m 0700 klogconsole $(DEST)/usr/sbin/
$(INSTALL) -c -m 0444 klogconsole.man $(DEST)/usr/share/man/man8/klogconsole.8
--- klogconsole/klogconsole.c
+++ klogconsole/klogconsole.c
@@ -46,7 +46,7 @@
char newvt[2];
int vt;
- if ((new_console < 1) || (new_console > MAX_CONSOLE)) {
+ if ((new_console < 0) || (new_console > MAX_CONSOLE)) {
fprintf(stderr,"wrong console number\n");
exit(1);
}

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a1efa9f001c8a92fb91a544d62a3f43356f31955dd5125364300827c239ee611
size 1942

3
klogconsole.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a4cd7c96ea647ad6ede62f93675acf3fa3c21ce225f9b771b82618fb2e676e4e
size 2060

View File

@ -1,3 +1,60 @@
-------------------------------------------------------------------
Wed Feb 25 20:43:28 CET 2015 - sbrabec@suse.cz
- Update to util-linux-2.26:
* based on the git master branch of util-linux, remove backported
patches (util-linux-libblkid-unsafe-chars.patch,
util-linux-libblkid-overflow.patch)
* zramctl(8): this NEW COMMAND allows to control /dev/zramN
devices
* agetty(8): supports new option --reload to force already
running agetty processes to reprint the /etc/issue file
* cfdisk(8), sfdisk(8) and fdisk(8): support sfdisk-compatible
scripts; it's possible to save your partitioning layout to text
files and (re)use it in all fdisks
* fdisk(8), sfdisk(8): support new command-line option "--output
<list>" to specify output columns for --list or print commands
* nsenter(1): has been updated to work with the latest kernel
changes in user namespaces supports new command-line option
--preserve-credentials
* unshare(1): has been updated to work with the latest kernel
changes in user namespaces supports new command-line option
"--setgroups=<deny|allow>"
* swapon(8): supports new command-line option "-o <list>" with
the same semantics as -o for mount(8); it's now possible to
specify swap options on the command line by the same string as
in fstab
* fdformat(8): supports new command-line options --from and --to
to specify tracks and --repair for broken floppies
* getopt(1): has been updated to the latest version (originally
maintained outside of util-linux) and refactored
* ldattach(8): has been improved to support GSM0710 and intro
modem commands
* logger(1): supports new command-line option --id= to specify
PID (or another ID) allows to specify --rfc3164 or --rfc5424
syslog protocols
* libfdisk: the library is distributed as a shared library with a
stable API and a standard header file
* libmount: provides a new simple API to monitor mount-table
changes (including changes in userspace mount options)
- Fix lack of I18N support in util-linux-systemd (mis-compilation).
-------------------------------------------------------------------
Sun Feb 22 17:15:41 UTC 2015 - crrodriguez@opensuse.org
- Build with FULL RELRO.
-------------------------------------------------------------------
Tue Feb 10 15:26:55 UTC 2015 - sweet_f_a@gmx.de
- define upstream source for klogconsole to remove patches
* klogconsole-quiet.patch
* klogconsole.diff
- remove openSUSE 13.1 specific eject permissions, did not worked
anyway since eject-fpie.patch was removed
- always call autoreconf, not only for splitted packages, skip
autopoint (gettext)
-------------------------------------------------------------------
Fri Feb 6 17:01:02 UTC 2015 - dimstar@opensuse.org

View File

@ -76,7 +76,7 @@ Name: python-libmount
%endif
Summary: %main_summary
License: GPL-2.0+
Group: %group_pl
Group: %main_group
BuildRequires: audit-devel
BuildRequires: bc
BuildRequires: binutils-devel
@ -120,7 +120,7 @@ BuildRequires: libmount-devel
%endif
%endif
#END SECOND STAGE DEPENDENCIES
Version: 2.25.2
Version: 2.26
Release: 0
# util-linux is a base package and uuidd pre-requiring pwdutils pulls
# that into the core build cycle. pwdutils also pulls in the whole
@ -129,7 +129,7 @@ Release: 0
# these tools as well
#!BuildIgnore: pwdutils
Url: https://www.kernel.org/pub/linux/utils/util-linux/
Source: ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.25/%{_name}-%{version}.tar.xz
Source: ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.26/%{_name}-%{version}.tar.xz
Source1: util-linux-rpmlintrc
Source4: raw.init
Source5: etc.raw
@ -139,11 +139,12 @@ Source8: login.pamd
Source9: remote.pamd
Source10: su.pamd
Source11: su.default
Source12: ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.25/%{_name}-%{version}.tar.sign
Source12: ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.26/%{_name}-%{version}.tar.sign
Source13: %{_name}.keyring
Source14: runuser.pamd
# klogconsole, http://opensuse.github.com/kiwi, 7.02.25, git 859dc050
# TODO: split to separate package
Source40: klogconsole.tar.bz2
Source40: klogconsole.tar.xz
# XXX: Run a program in a new session and with controlling tty
Source22: setctsid.c
Source23: setctsid.8
@ -160,15 +161,6 @@ Source51: blkid.conf
Patch4: make-sure-sbin-resp-usr-sbin-are-in-PATH.diff
# PATCH-FEATURE-SUSE -- Report about disabled encryption to stderr.
Patch12: util-linux-noenc-suse.patch
# PATCH-FIX-SECURITY util-linux-libblkid-unsafe-chars.patch bsc907434 CVE-2014-9114 sbrabec@suse.cz -- libblkid: care about unsafe chars in cache
Patch13: util-linux-libblkid-unsafe-chars.patch
# PATCH-FIX-SECURITY util-linux-libblkid-overflow.patch bsc907434 CVE-2014-9114 sbrabec@suse.cz -- libblkid: fix possible buffer overflow
Patch14: util-linux-libblkid-overflow.patch
##
## klogconsole
##
Patch55: klogconsole-quiet.patch
Patch56: klogconsole.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-build
#
%if %build_util_linux
@ -332,6 +324,31 @@ Requires: libsmartcols-devel = %{version}
%description -n libsmartcols-devel-static
Files to develop applications using the libsmartcols library.
%package -n libfdisk1
Summary: Filesystem detection library
Group: System/Filesystems
%description -n libfdisk1
Library for filesystem detection.
%package -n libfdisk-devel
Summary: Development files for the filesystem detection library
Group: Development/Libraries/C and C++
Requires: libfdisk1 = %{version}
%description -n libfdisk-devel
Files needed to develop applications using the library for filesystem
detection.
%package -n libfdisk-devel-static
Summary: Development files for the filesystem detection library
Group: Development/Libraries/C and C++
Requires: libfdisk-devel = %{version}
%description -n libfdisk-devel-static
Files needed to develop applications using the library for filesystem
detection.
%lang_package
%endif
%if %build_util_linux_systemd
@ -370,7 +387,6 @@ SMP systems.
%if %build_util_linux
%package -n python-libmount
Summary: %summary_pl
License: GPL-2.0+
Group: %group_pl
%description -n python-libmount
@ -388,17 +404,10 @@ xzcat %{S:0} | %gpg_verify -p %{_name} %{S:12} -
%setup -q -n %{_name}-%{version} -b 40
%patch4 -p1
%patch12 -p1
%patch13 -p1
%patch14 -p1
#
# setctsid
cp -p %{S:22} %{S:23} .
pushd ../klogconsole
%patch55 -p1
%patch56 -p1
popd
%build
#BEGIN CONFIG ALTER
%if !%build_util_linux_systemd
@ -437,7 +446,6 @@ fi
sed -i 's/BUILD_LSLOGINS/FALSE/
s/BUILD_LOGGER/FALSE/
' misc-utils/Makemodule.am login-utils/Makemodule.am bash-completion/Makemodule.am
autoreconf -f -i
%endif
#END FIRST STAGE MODIFICATIONS
%else
@ -509,14 +517,12 @@ sed -i '
' libmount/python/Makemodule.am misc-utils/Makemodule.am login-utils/Makemodule.am
# Ignore dependencies on optional (and not built in second stage) libraries
sed -i '
/AM_GNU_GETTEXT/d
s/UL_REQUIRES_BUILD(\[.*\], \[libuuid\])/dnl &/
s/UL_REQUIRES_BUILD(\[.*\], \[libsmartcols\])/dnl &/
' configure.ac
sed -i '
/SUBDIRS =/s/ po//
' Makefile.am
autoreconf -f -i
#END SECOND STAGE MODIFICATIONS
%endif
#
@ -533,11 +539,13 @@ else
fi
export SUID_CFLAGS="-fpie"
export SUID_LDFLAGS="-pie"
export LDFLAGS="-Wl,-z,relro,-z,now"
# override default localstatedir to /run
# only used for volatile data
#
# SUSE now supports only systemd based system. We do not build
# sysvinit-only versions of UTIL_LINUX_SYSTEMD_SOURCES utilities.
AUTOPOINT=true autoreconf -vfi
%configure \
--localstatedir=/run \
--docdir=%{_docdir}/%{_name} \
@ -601,10 +609,8 @@ export TS_OPT_fdisk_bsd_known_fail="yes"
export TS_OPT_misc_setarch_known_fail="yes"
%endif
#
%if 0%{?suse_version} > 1310
# glibc requires kernel >= 3.0, thus setarch --uname-2.6 fails on platforms without VDSO
export TS_OPT_misc_setarch_known_fail="yes"
%endif
#
%ifarch armv6l armv6hl aarch64
export TS_OPT_fdisk_gpt_known_fail="yes"
@ -851,6 +857,10 @@ fi
%postun -n libuuid1 -p /sbin/ldconfig
%post -n libfdisk1 -p /sbin/ldconfig
%postun -n libfdisk1 -p /sbin/ldconfig
%files lang -f %{name}.lang
%endif
@ -964,12 +974,8 @@ fi
%{_bindir}/su
%endif
%if %{with enable_eject}
%if 0%{?suse_version} <= 1310
%verify(not mode) %attr(4750,root,audio) %{_bindir}/eject
%else
%{_bindir}/eject
%endif
%endif
%{_bindir}/cal
%{_bindir}/chrt
%{_bindir}/col
@ -1068,6 +1074,7 @@ fi
%verify(not mode) %attr(0755,root,tty) %{_bindir}/wall
%{_bindir}/whereis
%verify(not mode) %attr(0755,root,tty) %{_bindir}/write
%{_sbindir}/zramctl
%if %{with enable_su}
%{_mandir}/man1/kill.1.gz
%{_mandir}/man1/su.1.gz
@ -1169,6 +1176,7 @@ fi
%{_mandir}/man8/uname26.8.gz
%{_mandir}/man8/setctsid.8.gz
%{_mandir}/man8/wipefs.8.gz
%{_mandir}/man8/zramctl.8.gz
%{_mandir}/man8/fstrim.8.gz
%{_mandir}/man8/lsblk.8.gz
%{_mandir}/man8/resizepart.8.gz
@ -1287,6 +1295,23 @@ fi
%files -n libuuid-devel-static
%defattr(-, root, root)
%{_libdir}/libuuid.*a
%files -n libfdisk1
%defattr(-, root, root)
%{_libdir}/libfdisk.so.1
%{_libdir}/libfdisk.so.1.*
%files -n libfdisk-devel
%defattr(-, root, root)
%{_libdir}/libfdisk.so
%dir %{_includedir}/libfdisk
%{_includedir}/libfdisk/libfdisk.h
%{_libdir}/pkgconfig/fdisk.pc
%files -n libfdisk-devel-static
%defattr(-, root, root)
%{_libdir}/libfdisk.*a
%endif
%if %build_util_linux_systemd

View File

@ -1,17 +0,0 @@
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJUSk3GAAoJEOS3HV7sOcKEsrcQAIRmU5klSM7Q+JWzvvvdoKhb
wVqB5VbYCZEH8L5NMRQwzWbZcMtIsFAD6T7tH6hX/jjYxMB5FdJfWrCdaYsevY6k
hpUkEAK6FWzGGJE/s5sq90zgoDQHCBG2VRxLiKj4WfO8zKfBiJTrA43NQPCSj6pN
fT/t1fzpTQj5BRrhjH/e3ghz+CvSw9LH5RZqB8gURBly+1zuTxDw3zfVEqA44/Y7
Dl+G+r6DzuiUTjGhXlEeG+NfImGhWAiw+r7ScTBEYmF5lQ1VUWlNCg3cX8/JIU/o
U9TQL3mBdcLc0kVBsQ0XcroCpEyYBNDbyjGUEQ8PIVMCdqg114Jphdp7j+9tecSs
ofBo/P99U43jFtozow+ECHYX6j9LiTyynPZAmMnD+bvtIL/tBDaP4/x0qeqtmJyF
+I+V7fARGqMmyt+3xRD3euN16X15HAOW7tchAfhj7T35WfXfV5jHTiz9RA58EgJ5
7MKAkezEpMbeWUXkVe2nm9Lcki2pU+iuGC36L6hi1Jlxe58gdF1bE2UXW3eXb6mc
1E3uC3jCJ+5gG8mJBYpf4nt+sXA7Elv9QahTsXABbUyNxR43E47rQgsmPqTZgU8O
TxRUz/ZI1ytVFTeledsWb35mItxiP9g8HgCZF7idcZkqx1p41DMkjj7GCkSHxDju
H19vNbkWYnuK8AoqPAQy
=RONJ
-----END PGP SIGNATURE-----

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:e0457f715b73f4a349e1acb08cb410bf0edc9a74a3f75c357070f31f70e33cd6
size 3703644

17
util-linux-2.26.tar.sign Normal file
View File

@ -0,0 +1,17 @@
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1
iQIcBAABAgAGBQJU5dYmAAoJEOS3HV7sOcKE/kwP/2IxeHdT91RtWcNvTVhKaFe5
KItv6vf1790aogocDmnOzxQGhKu/A6BMok4rck2tWkgbH9cPVeG9s3ThN8+cr4Jd
e0pLW+0AgmMFKHRcsmdzSJsOKwoIwrJFkmbGcBQbjJgX74N3RPUX8j+J9JB3VRdf
ampyz6wtbsQ0sK4JkE7GCPhC8VEOcWP/Aousx4+nVf/TGgow4s5aBuP0pdDI3liS
3VAoABPDwUSb3llNw6rfM40PfGU9FObofPiPnD3kNTqEJclxDlbBW4CzcMX5yPca
gMDYoMv35t2lQULeyl/t3C7QzVZtCUyomYIRKta1U0vpwN9dHZSd6aUly2ad/2ci
9bO71M3MTcDzayNz/WiHg1UiadsqmcrfUFvOsFwbxaRrJp0yG5Ymo0wCpYIiR5SN
snevV8tgPWOfUqkhApA7rdWf/lNTz26D9gioKnMpU+BXkPk6LzPvVF4/BoRT1PFr
yiF4g/HaNfjdiZSOYTpC8LbjhCE+H1MPx8ljp5LPR8DtUh3Rl8o0edNK6WcK6USO
s7N4QsXpWNHk71OTvYYHGSJLhk2nmABQXKOKNHUxKqbHAgta/Wuc9yNB+7+qxrYp
xR28xtXwHzMrGf6dL9ZEQbMhuhlRTfhe+4AM5SCKY3JZJcahvn2ocEuZSAphoJhl
FWmJ6n5biUK+N5VnDvMX
=bnK5
-----END PGP SIGNATURE-----

3
util-linux-2.26.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:a23c6f39dea0ed215ccd589509ffc7bb6f706f6e1a04760f493fb0fd7e93c489
size 3847960

View File

@ -1,101 +0,0 @@
From 109df14fad4e9570e26950913ebace6c79289400 Mon Sep 17 00:00:00 2001
From: Sebastian Krahmer <krahmer@suse.de>
Date: Fri, 5 Dec 2014 10:06:42 +0100
Subject: [PATCH] libblkid: fix potential bufer overflows
While digging deeper into libblk probing, I found that some
computations might wrap and allocate too few buffer space which then
overflows. In particular on 32bit systems (chromebook) where size_t is
32bit, this is problematic (for 64bit the result fits into the calloc
size_t).
Signed-off-by: Karel Zak <kzak@redhat.com>
---
libblkid/src/partitions/gpt.c | 12 ++++++++----
libblkid/src/probe.c | 7 +++++++
libblkid/src/superblocks/zfs.c | 3 +++
3 files changed, 18 insertions(+), 4 deletions(-)
diff --git a/libblkid/src/partitions/gpt.c b/libblkid/src/partitions/gpt.c
index 6ab4f71..665577f 100644
--- a/libblkid/src/partitions/gpt.c
+++ b/libblkid/src/partitions/gpt.c
@@ -17,6 +17,7 @@
#include <stdlib.h>
#include <stdint.h>
#include <stddef.h>
+#include <limits.h>
#include "partitions.h"
#include "crc32.h"
@@ -263,14 +264,17 @@ static struct gpt_header *get_gpt_header(
return NULL;
}
- /* Size of blocks with GPT entries */
- esz = le32_to_cpu(h->num_partition_entries) *
- le32_to_cpu(h->sizeof_partition_entry);
- if (!esz) {
+ if (le32_to_cpu(h->num_partition_entries) == 0 ||
+ le32_to_cpu(h->sizeof_partition_entry) == 0 ||
+ ULONG_MAX / le32_to_cpu(h->num_partition_entries) < le32_to_cpu(h->sizeof_partition_entry)) {
DBG(LOWPROBE, ul_debug("GPT entries undefined"));
return NULL;
}
+ /* Size of blocks with GPT entries */
+ esz = le32_to_cpu(h->num_partition_entries) *
+ le32_to_cpu(h->sizeof_partition_entry);
+
/* The header seems valid, save it
* (we don't care about zeros in hdr->reserved2 area) */
memcpy(hdr, h, sizeof(*h));
diff --git a/libblkid/src/probe.c b/libblkid/src/probe.c
index 3f7e43b..70e882a 100644
--- a/libblkid/src/probe.c
+++ b/libblkid/src/probe.c
@@ -103,6 +103,7 @@
#include <inttypes.h>
#include <stdint.h>
#include <stdarg.h>
+#include <limits.h>
#ifdef HAVE_LIBUUID
# include <uuid.h>
@@ -578,6 +579,12 @@ unsigned char *blkid_probe_get_buffer(blkid_probe pr,
return NULL;
}
+ /* someone trying to overflow some buffers? */
+ if (len > ULONG_MAX - sizeof(struct blkid_bufinfo)) {
+ errno = ENOMEM;
+ return NULL;
+ }
+
/* allocate info and space for data by why call */
bf = calloc(1, sizeof(struct blkid_bufinfo) + len);
if (!bf) {
diff --git a/libblkid/src/superblocks/zfs.c b/libblkid/src/superblocks/zfs.c
index 6ffa24d..86da59d 100644
--- a/libblkid/src/superblocks/zfs.c
+++ b/libblkid/src/superblocks/zfs.c
@@ -12,6 +12,7 @@
#include <errno.h>
#include <ctype.h>
#include <inttypes.h>
+#include <limits.h>
#include "superblocks.h"
@@ -108,6 +109,8 @@ static void zfs_extract_guid_name(blkid_probe pr, loff_t offset)
nvs->nvs_type = be32_to_cpu(nvs->nvs_type);
nvs->nvs_strlen = be32_to_cpu(nvs->nvs_strlen);
+ if (nvs->nvs_strlen > UINT_MAX - sizeof(*nvs))
+ break;
avail -= nvs->nvs_strlen + sizeof(*nvs);
nvdebug("nvstring: type %u string %*s\n", nvs->nvs_type,
nvs->nvs_strlen, nvs->nvs_string);
--
2.2.2

View File

@ -1,167 +0,0 @@
From 89e90ae7b2826110ea28c1c0eb8e7c56c3907bdc Mon Sep 17 00:00:00 2001
From: Karel Zak <kzak@redhat.com>
Date: Thu, 27 Nov 2014 13:39:35 +0100
Subject: [PATCH] libblkid: care about unsafe chars in cache
The high-level libblkid API uses /run/blkid/blkid.tab cache to
store probing results. The cache format is
<device NAME="value" ...>devname</device>
and unfortunately the cache code does not escape quotation marks:
# mkfs.ext4 -L 'AAA"BBB'
# cat /run/blkid/blkid.tab
...
<device ... LABEL="AAA"BBB" ...>/dev/sdb1</device>
such string is later incorrectly parsed and blkid(8) returns
nonsenses. And for use-cases like
# eval $(blkid -o export /dev/sdb1)
it's also insecure.
Note that mount, udevd and blkid -p are based on low-level libblkid
API, it bypass the cache and directly read data from the devices.
The current udevd upstream does not depend on blkid(8) output at all,
it's directly linked with the library and all unsafe chars are encoded by
\x<hex> notation.
# mkfs.ext4 -L 'X"`/tmp/foo` "' /dev/sdb1
# udevadm info --export-db | grep LABEL
...
E: ID_FS_LABEL=X__/tmp/foo___
E: ID_FS_LABEL_ENC=X\x22\x60\x2ftmp\x2ffoo\x60\x20\x22
Signed-off-by: Karel Zak <kzak@redhat.com>
---
libblkid/src/read.c | 21 ++++++++++++++++++---
libblkid/src/save.c | 22 +++++++++++++++++++++-
misc-utils/blkid.8 | 5 ++++-
misc-utils/blkid.c | 4 ++--
4 files changed, 45 insertions(+), 7 deletions(-)
diff --git a/libblkid/src/read.c b/libblkid/src/read.c
index 0e91c9c..81ab0df 100644
--- a/libblkid/src/read.c
+++ b/libblkid/src/read.c
@@ -252,15 +252,30 @@ static int parse_token(char **name, char **value, char **cp)
*value = skip_over_blank(*value + 1);
if (**value == '"') {
- end = strchr(*value + 1, '"');
- if (!end) {
+ char *p = end = *value + 1;
+
+ /* convert 'foo\"bar' to 'foo"bar' */
+ while (*p) {
+ if (*p == '\\') {
+ p++;
+ *end = *p;
+ } else {
+ *end = *p;
+ if (*p == '"')
+ break;
+ }
+ p++;
+ end++;
+ }
+
+ if (*end != '"') {
DBG(READ, ul_debug("unbalanced quotes at: %s", *value));
*cp = *value;
return -BLKID_ERR_CACHE;
}
(*value)++;
*end = '\0';
- end++;
+ end = ++p;
} else {
end = skip_over_word(*value);
if (*end) {
diff --git a/libblkid/src/save.c b/libblkid/src/save.c
index 8216f09..5e8bbee 100644
--- a/libblkid/src/save.c
+++ b/libblkid/src/save.c
@@ -26,6 +26,21 @@
#include "blkidP.h"
+
+static void save_quoted(const char *data, FILE *file)
+{
+ const char *p;
+
+ fputc('"', file);
+ for (p = data; p && *p; p++) {
+ if ((unsigned char) *p == 0x22 || /* " */
+ (unsigned char) *p == 0x5c) /* \ */
+ fputc('\\', file);
+
+ fputc(*p, file);
+ }
+ fputc('"', file);
+}
static int save_dev(blkid_dev dev, FILE *file)
{
struct list_head *p;
@@ -43,9 +58,14 @@ static int save_dev(blkid_dev dev, FILE *file)
if (dev->bid_pri)
fprintf(file, " PRI=\"%d\"", dev->bid_pri);
+
list_for_each(p, &dev->bid_tags) {
blkid_tag tag = list_entry(p, struct blkid_struct_tag, bit_tags);
- fprintf(file, " %s=\"%s\"", tag->bit_name,tag->bit_val);
+
+ fputc(' ', file); /* space between tags */
+ fputs(tag->bit_name, file); /* tag NAME */
+ fputc('=', file); /* separator between NAME and VALUE */
+ save_quoted(tag->bit_val, file); /* tag "VALUE" */
}
fprintf(file, ">%s</device>\n", dev->bid_name);
diff --git a/misc-utils/blkid.8 b/misc-utils/blkid.8
index 156a14b..c95b833 100644
--- a/misc-utils/blkid.8
+++ b/misc-utils/blkid.8
@@ -200,7 +200,10 @@ partitions. This output format is \fBDEPRECATED\fR.
.TP
.B export
print key=value pairs for easy import into the environment; this output format
-is automatically enabled when I/O Limits (\fB-i\fR option) are requested
+is automatically enabled when I/O Limits (\fB-i\fR option) are requested.
+
+The non-printing characters are encoded by ^ and M- notation and all
+potentially unsafe characters are escaped.
.RE
.TP
.BI \-O " offset"
diff --git a/misc-utils/blkid.c b/misc-utils/blkid.c
index a6ca660..1bd8646 100644
--- a/misc-utils/blkid.c
+++ b/misc-utils/blkid.c
@@ -306,7 +306,7 @@ static void print_value(int output, int num, const char *devname,
printf("DEVNAME=%s\n", devname);
fputs(name, stdout);
fputs("=", stdout);
- safe_print(value, valsz, NULL);
+ safe_print(value, valsz, " \\\"'$`<>");
fputs("\n", stdout);
} else {
@@ -315,7 +315,7 @@ static void print_value(int output, int num, const char *devname,
fputs(" ", stdout);
fputs(name, stdout);
fputs("=\"", stdout);
- safe_print(value, valsz, "\"");
+ safe_print(value, valsz, "\"\\");
fputs("\"", stdout);
}
}
--
2.2.2

View File

@ -1,3 +1,60 @@
-------------------------------------------------------------------
Wed Feb 25 20:43:28 CET 2015 - sbrabec@suse.cz
- Update to util-linux-2.26:
* based on the git master branch of util-linux, remove backported
patches (util-linux-libblkid-unsafe-chars.patch,
util-linux-libblkid-overflow.patch)
* zramctl(8): this NEW COMMAND allows to control /dev/zramN
devices
* agetty(8): supports new option --reload to force already
running agetty processes to reprint the /etc/issue file
* cfdisk(8), sfdisk(8) and fdisk(8): support sfdisk-compatible
scripts; it's possible to save your partitioning layout to text
files and (re)use it in all fdisks
* fdisk(8), sfdisk(8): support new command-line option "--output
<list>" to specify output columns for --list or print commands
* nsenter(1): has been updated to work with the latest kernel
changes in user namespaces supports new command-line option
--preserve-credentials
* unshare(1): has been updated to work with the latest kernel
changes in user namespaces supports new command-line option
"--setgroups=<deny|allow>"
* swapon(8): supports new command-line option "-o <list>" with
the same semantics as -o for mount(8); it's now possible to
specify swap options on the command line by the same string as
in fstab
* fdformat(8): supports new command-line options --from and --to
to specify tracks and --repair for broken floppies
* getopt(1): has been updated to the latest version (originally
maintained outside of util-linux) and refactored
* ldattach(8): has been improved to support GSM0710 and intro
modem commands
* logger(1): supports new command-line option --id= to specify
PID (or another ID) allows to specify --rfc3164 or --rfc5424
syslog protocols
* libfdisk: the library is distributed as a shared library with a
stable API and a standard header file
* libmount: provides a new simple API to monitor mount-table
changes (including changes in userspace mount options)
- Fix lack of I18N support in util-linux-systemd (mis-compilation).
-------------------------------------------------------------------
Sun Feb 22 17:15:41 UTC 2015 - crrodriguez@opensuse.org
- Build with FULL RELRO.
-------------------------------------------------------------------
Tue Feb 10 15:26:55 UTC 2015 - sweet_f_a@gmx.de
- define upstream source for klogconsole to remove patches
* klogconsole-quiet.patch
* klogconsole.diff
- remove openSUSE 13.1 specific eject permissions, did not worked
anyway since eject-fpie.patch was removed
- always call autoreconf, not only for splitted packages, skip
autopoint (gettext)
-------------------------------------------------------------------
Fri Feb 6 17:01:02 UTC 2015 - dimstar@opensuse.org

View File

@ -120,7 +120,7 @@ BuildRequires: libmount-devel
%endif
%endif
#END SECOND STAGE DEPENDENCIES
Version: 2.25.2
Version: 2.26
Release: 0
# util-linux is a base package and uuidd pre-requiring pwdutils pulls
# that into the core build cycle. pwdutils also pulls in the whole
@ -129,7 +129,7 @@ Release: 0
# these tools as well
#!BuildIgnore: pwdutils
Url: https://www.kernel.org/pub/linux/utils/util-linux/
Source: ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.25/%{_name}-%{version}.tar.xz
Source: ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.26/%{_name}-%{version}.tar.xz
Source1: util-linux-rpmlintrc
Source4: raw.init
Source5: etc.raw
@ -139,11 +139,12 @@ Source8: login.pamd
Source9: remote.pamd
Source10: su.pamd
Source11: su.default
Source12: ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.25/%{_name}-%{version}.tar.sign
Source12: ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.26/%{_name}-%{version}.tar.sign
Source13: %{_name}.keyring
Source14: runuser.pamd
# klogconsole, http://opensuse.github.com/kiwi, 7.02.25, git 859dc050
# TODO: split to separate package
Source40: klogconsole.tar.bz2
Source40: klogconsole.tar.xz
# XXX: Run a program in a new session and with controlling tty
Source22: setctsid.c
Source23: setctsid.8
@ -160,15 +161,6 @@ Source51: blkid.conf
Patch4: make-sure-sbin-resp-usr-sbin-are-in-PATH.diff
# PATCH-FEATURE-SUSE -- Report about disabled encryption to stderr.
Patch12: util-linux-noenc-suse.patch
# PATCH-FIX-SECURITY util-linux-libblkid-unsafe-chars.patch bsc907434 CVE-2014-9114 sbrabec@suse.cz -- libblkid: care about unsafe chars in cache
Patch13: util-linux-libblkid-unsafe-chars.patch
# PATCH-FIX-SECURITY util-linux-libblkid-overflow.patch bsc907434 CVE-2014-9114 sbrabec@suse.cz -- libblkid: fix possible buffer overflow
Patch14: util-linux-libblkid-overflow.patch
##
## klogconsole
##
Patch55: klogconsole-quiet.patch
Patch56: klogconsole.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-build
#
%if %build_util_linux
@ -332,6 +324,31 @@ Requires: libsmartcols-devel = %{version}
%description -n libsmartcols-devel-static
Files to develop applications using the libsmartcols library.
%package -n libfdisk1
Summary: Filesystem detection library
Group: System/Filesystems
%description -n libfdisk1
Library for filesystem detection.
%package -n libfdisk-devel
Summary: Development files for the filesystem detection library
Group: Development/Libraries/C and C++
Requires: libfdisk1 = %{version}
%description -n libfdisk-devel
Files needed to develop applications using the library for filesystem
detection.
%package -n libfdisk-devel-static
Summary: Development files for the filesystem detection library
Group: Development/Libraries/C and C++
Requires: libfdisk-devel = %{version}
%description -n libfdisk-devel-static
Files needed to develop applications using the library for filesystem
detection.
%lang_package
%endif
%if %build_util_linux_systemd
@ -387,17 +404,10 @@ xzcat %{S:0} | %gpg_verify -p %{_name} %{S:12} -
%setup -q -n %{_name}-%{version} -b 40
%patch4 -p1
%patch12 -p1
%patch13 -p1
%patch14 -p1
#
# setctsid
cp -p %{S:22} %{S:23} .
pushd ../klogconsole
%patch55 -p1
%patch56 -p1
popd
%build
#BEGIN CONFIG ALTER
%if !%build_util_linux_systemd
@ -436,7 +446,6 @@ fi
sed -i 's/BUILD_LSLOGINS/FALSE/
s/BUILD_LOGGER/FALSE/
' misc-utils/Makemodule.am login-utils/Makemodule.am bash-completion/Makemodule.am
autoreconf -f -i
%endif
#END FIRST STAGE MODIFICATIONS
%else
@ -508,14 +517,12 @@ sed -i '
' libmount/python/Makemodule.am misc-utils/Makemodule.am login-utils/Makemodule.am
# Ignore dependencies on optional (and not built in second stage) libraries
sed -i '
/AM_GNU_GETTEXT/d
s/UL_REQUIRES_BUILD(\[.*\], \[libuuid\])/dnl &/
s/UL_REQUIRES_BUILD(\[.*\], \[libsmartcols\])/dnl &/
' configure.ac
sed -i '
/SUBDIRS =/s/ po//
' Makefile.am
autoreconf -f -i
#END SECOND STAGE MODIFICATIONS
%endif
#
@ -532,11 +539,13 @@ else
fi
export SUID_CFLAGS="-fpie"
export SUID_LDFLAGS="-pie"
export LDFLAGS="-Wl,-z,relro,-z,now"
# override default localstatedir to /run
# only used for volatile data
#
# SUSE now supports only systemd based system. We do not build
# sysvinit-only versions of UTIL_LINUX_SYSTEMD_SOURCES utilities.
AUTOPOINT=true autoreconf -vfi
%configure \
--localstatedir=/run \
--docdir=%{_docdir}/%{_name} \
@ -600,10 +609,8 @@ export TS_OPT_fdisk_bsd_known_fail="yes"
export TS_OPT_misc_setarch_known_fail="yes"
%endif
#
%if 0%{?suse_version} > 1310
# glibc requires kernel >= 3.0, thus setarch --uname-2.6 fails on platforms without VDSO
export TS_OPT_misc_setarch_known_fail="yes"
%endif
#
%ifarch armv6l armv6hl aarch64
export TS_OPT_fdisk_gpt_known_fail="yes"
@ -850,6 +857,10 @@ fi
%postun -n libuuid1 -p /sbin/ldconfig
%post -n libfdisk1 -p /sbin/ldconfig
%postun -n libfdisk1 -p /sbin/ldconfig
%files lang -f %{name}.lang
%endif
@ -963,12 +974,8 @@ fi
%{_bindir}/su
%endif
%if %{with enable_eject}
%if 0%{?suse_version} <= 1310
%verify(not mode) %attr(4750,root,audio) %{_bindir}/eject
%else
%{_bindir}/eject
%endif
%endif
%{_bindir}/cal
%{_bindir}/chrt
%{_bindir}/col
@ -1067,6 +1074,7 @@ fi
%verify(not mode) %attr(0755,root,tty) %{_bindir}/wall
%{_bindir}/whereis
%verify(not mode) %attr(0755,root,tty) %{_bindir}/write
%{_sbindir}/zramctl
%if %{with enable_su}
%{_mandir}/man1/kill.1.gz
%{_mandir}/man1/su.1.gz
@ -1168,6 +1176,7 @@ fi
%{_mandir}/man8/uname26.8.gz
%{_mandir}/man8/setctsid.8.gz
%{_mandir}/man8/wipefs.8.gz
%{_mandir}/man8/zramctl.8.gz
%{_mandir}/man8/fstrim.8.gz
%{_mandir}/man8/lsblk.8.gz
%{_mandir}/man8/resizepart.8.gz
@ -1286,6 +1295,23 @@ fi
%files -n libuuid-devel-static
%defattr(-, root, root)
%{_libdir}/libuuid.*a
%files -n libfdisk1
%defattr(-, root, root)
%{_libdir}/libfdisk.so.1
%{_libdir}/libfdisk.so.1.*
%files -n libfdisk-devel
%defattr(-, root, root)
%{_libdir}/libfdisk.so
%dir %{_includedir}/libfdisk
%{_includedir}/libfdisk/libfdisk.h
%{_libdir}/pkgconfig/fdisk.pc
%files -n libfdisk-devel-static
%defattr(-, root, root)
%{_libdir}/libfdisk.*a
%endif
%if %build_util_linux_systemd

View File

@ -1,3 +1,60 @@
-------------------------------------------------------------------
Wed Feb 25 20:43:28 CET 2015 - sbrabec@suse.cz
- Update to util-linux-2.26:
* based on the git master branch of util-linux, remove backported
patches (util-linux-libblkid-unsafe-chars.patch,
util-linux-libblkid-overflow.patch)
* zramctl(8): this NEW COMMAND allows to control /dev/zramN
devices
* agetty(8): supports new option --reload to force already
running agetty processes to reprint the /etc/issue file
* cfdisk(8), sfdisk(8) and fdisk(8): support sfdisk-compatible
scripts; it's possible to save your partitioning layout to text
files and (re)use it in all fdisks
* fdisk(8), sfdisk(8): support new command-line option "--output
<list>" to specify output columns for --list or print commands
* nsenter(1): has been updated to work with the latest kernel
changes in user namespaces supports new command-line option
--preserve-credentials
* unshare(1): has been updated to work with the latest kernel
changes in user namespaces supports new command-line option
"--setgroups=<deny|allow>"
* swapon(8): supports new command-line option "-o <list>" with
the same semantics as -o for mount(8); it's now possible to
specify swap options on the command line by the same string as
in fstab
* fdformat(8): supports new command-line options --from and --to
to specify tracks and --repair for broken floppies
* getopt(1): has been updated to the latest version (originally
maintained outside of util-linux) and refactored
* ldattach(8): has been improved to support GSM0710 and intro
modem commands
* logger(1): supports new command-line option --id= to specify
PID (or another ID) allows to specify --rfc3164 or --rfc5424
syslog protocols
* libfdisk: the library is distributed as a shared library with a
stable API and a standard header file
* libmount: provides a new simple API to monitor mount-table
changes (including changes in userspace mount options)
- Fix lack of I18N support in util-linux-systemd (mis-compilation).
-------------------------------------------------------------------
Sun Feb 22 17:15:41 UTC 2015 - crrodriguez@opensuse.org
- Build with FULL RELRO.
-------------------------------------------------------------------
Tue Feb 10 15:26:55 UTC 2015 - sweet_f_a@gmx.de
- define upstream source for klogconsole to remove patches
* klogconsole-quiet.patch
* klogconsole.diff
- remove openSUSE 13.1 specific eject permissions, did not worked
anyway since eject-fpie.patch was removed
- always call autoreconf, not only for splitted packages, skip
autopoint (gettext)
-------------------------------------------------------------------
Fri Feb 6 17:01:02 UTC 2015 - dimstar@opensuse.org

View File

@ -120,7 +120,7 @@ BuildRequires: libmount-devel
%endif
%endif
#END SECOND STAGE DEPENDENCIES
Version: 2.25.2
Version: 2.26
Release: 0
# util-linux is a base package and uuidd pre-requiring pwdutils pulls
# that into the core build cycle. pwdutils also pulls in the whole
@ -129,7 +129,7 @@ Release: 0
# these tools as well
#!BuildIgnore: pwdutils
Url: https://www.kernel.org/pub/linux/utils/util-linux/
Source: ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.25/%{_name}-%{version}.tar.xz
Source: ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.26/%{_name}-%{version}.tar.xz
Source1: util-linux-rpmlintrc
Source4: raw.init
Source5: etc.raw
@ -139,11 +139,12 @@ Source8: login.pamd
Source9: remote.pamd
Source10: su.pamd
Source11: su.default
Source12: ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.25/%{_name}-%{version}.tar.sign
Source12: ftp://ftp.kernel.org/pub/linux/utils/util-linux/v2.26/%{_name}-%{version}.tar.sign
Source13: %{_name}.keyring
Source14: runuser.pamd
# klogconsole, http://opensuse.github.com/kiwi, 7.02.25, git 859dc050
# TODO: split to separate package
Source40: klogconsole.tar.bz2
Source40: klogconsole.tar.xz
# XXX: Run a program in a new session and with controlling tty
Source22: setctsid.c
Source23: setctsid.8
@ -160,15 +161,6 @@ Source51: blkid.conf
Patch4: make-sure-sbin-resp-usr-sbin-are-in-PATH.diff
# PATCH-FEATURE-SUSE -- Report about disabled encryption to stderr.
Patch12: util-linux-noenc-suse.patch
# PATCH-FIX-SECURITY util-linux-libblkid-unsafe-chars.patch bsc907434 CVE-2014-9114 sbrabec@suse.cz -- libblkid: care about unsafe chars in cache
Patch13: util-linux-libblkid-unsafe-chars.patch
# PATCH-FIX-SECURITY util-linux-libblkid-overflow.patch bsc907434 CVE-2014-9114 sbrabec@suse.cz -- libblkid: fix possible buffer overflow
Patch14: util-linux-libblkid-overflow.patch
##
## klogconsole
##
Patch55: klogconsole-quiet.patch
Patch56: klogconsole.diff
BuildRoot: %{_tmppath}/%{name}-%{version}-build
#
%if %build_util_linux
@ -332,6 +324,31 @@ Requires: libsmartcols-devel = %{version}
%description -n libsmartcols-devel-static
Files to develop applications using the libsmartcols library.
%package -n libfdisk1
Summary: Filesystem detection library
Group: System/Filesystems
%description -n libfdisk1
Library for filesystem detection.
%package -n libfdisk-devel
Summary: Development files for the filesystem detection library
Group: Development/Libraries/C and C++
Requires: libfdisk1 = %{version}
%description -n libfdisk-devel
Files needed to develop applications using the library for filesystem
detection.
%package -n libfdisk-devel-static
Summary: Development files for the filesystem detection library
Group: Development/Libraries/C and C++
Requires: libfdisk-devel = %{version}
%description -n libfdisk-devel-static
Files needed to develop applications using the library for filesystem
detection.
%lang_package
%endif
%if %build_util_linux_systemd
@ -387,17 +404,10 @@ xzcat %{S:0} | %gpg_verify -p %{_name} %{S:12} -
%setup -q -n %{_name}-%{version} -b 40
%patch4 -p1
%patch12 -p1
%patch13 -p1
%patch14 -p1
#
# setctsid
cp -p %{S:22} %{S:23} .
pushd ../klogconsole
%patch55 -p1
%patch56 -p1
popd
%build
#BEGIN CONFIG ALTER
%if !%build_util_linux_systemd
@ -436,7 +446,6 @@ fi
sed -i 's/BUILD_LSLOGINS/FALSE/
s/BUILD_LOGGER/FALSE/
' misc-utils/Makemodule.am login-utils/Makemodule.am bash-completion/Makemodule.am
autoreconf -f -i
%endif
#END FIRST STAGE MODIFICATIONS
%else
@ -508,14 +517,12 @@ sed -i '
' libmount/python/Makemodule.am misc-utils/Makemodule.am login-utils/Makemodule.am
# Ignore dependencies on optional (and not built in second stage) libraries
sed -i '
/AM_GNU_GETTEXT/d
s/UL_REQUIRES_BUILD(\[.*\], \[libuuid\])/dnl &/
s/UL_REQUIRES_BUILD(\[.*\], \[libsmartcols\])/dnl &/
' configure.ac
sed -i '
/SUBDIRS =/s/ po//
' Makefile.am
autoreconf -f -i
#END SECOND STAGE MODIFICATIONS
%endif
#
@ -532,11 +539,13 @@ else
fi
export SUID_CFLAGS="-fpie"
export SUID_LDFLAGS="-pie"
export LDFLAGS="-Wl,-z,relro,-z,now"
# override default localstatedir to /run
# only used for volatile data
#
# SUSE now supports only systemd based system. We do not build
# sysvinit-only versions of UTIL_LINUX_SYSTEMD_SOURCES utilities.
AUTOPOINT=true autoreconf -vfi
%configure \
--localstatedir=/run \
--docdir=%{_docdir}/%{_name} \
@ -600,10 +609,8 @@ export TS_OPT_fdisk_bsd_known_fail="yes"
export TS_OPT_misc_setarch_known_fail="yes"
%endif
#
%if 0%{?suse_version} > 1310
# glibc requires kernel >= 3.0, thus setarch --uname-2.6 fails on platforms without VDSO
export TS_OPT_misc_setarch_known_fail="yes"
%endif
#
%ifarch armv6l armv6hl aarch64
export TS_OPT_fdisk_gpt_known_fail="yes"
@ -850,6 +857,10 @@ fi
%postun -n libuuid1 -p /sbin/ldconfig
%post -n libfdisk1 -p /sbin/ldconfig
%postun -n libfdisk1 -p /sbin/ldconfig
%files lang -f %{name}.lang
%endif
@ -963,12 +974,8 @@ fi
%{_bindir}/su
%endif
%if %{with enable_eject}
%if 0%{?suse_version} <= 1310
%verify(not mode) %attr(4750,root,audio) %{_bindir}/eject
%else
%{_bindir}/eject
%endif
%endif
%{_bindir}/cal
%{_bindir}/chrt
%{_bindir}/col
@ -1067,6 +1074,7 @@ fi
%verify(not mode) %attr(0755,root,tty) %{_bindir}/wall
%{_bindir}/whereis
%verify(not mode) %attr(0755,root,tty) %{_bindir}/write
%{_sbindir}/zramctl
%if %{with enable_su}
%{_mandir}/man1/kill.1.gz
%{_mandir}/man1/su.1.gz
@ -1168,6 +1176,7 @@ fi
%{_mandir}/man8/uname26.8.gz
%{_mandir}/man8/setctsid.8.gz
%{_mandir}/man8/wipefs.8.gz
%{_mandir}/man8/zramctl.8.gz
%{_mandir}/man8/fstrim.8.gz
%{_mandir}/man8/lsblk.8.gz
%{_mandir}/man8/resizepart.8.gz
@ -1286,6 +1295,23 @@ fi
%files -n libuuid-devel-static
%defattr(-, root, root)
%{_libdir}/libuuid.*a
%files -n libfdisk1
%defattr(-, root, root)
%{_libdir}/libfdisk.so.1
%{_libdir}/libfdisk.so.1.*
%files -n libfdisk-devel
%defattr(-, root, root)
%{_libdir}/libfdisk.so
%dir %{_includedir}/libfdisk
%{_includedir}/libfdisk/libfdisk.h
%{_libdir}/pkgconfig/fdisk.pc
%files -n libfdisk-devel-static
%defattr(-, root, root)
%{_libdir}/libfdisk.*a
%endif
%if %build_util_linux_systemd