util-linux: bump to version 2.26
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar> Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
parent
5b13fc05b3
commit
62edc713b5
@ -3,58 +3,24 @@ Fix libmount build under uClibc
|
|||||||
See https://bugs.gentoo.org/show_bug.cgi?id=406303
|
See https://bugs.gentoo.org/show_bug.cgi?id=406303
|
||||||
http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/sys-apps/util-linux/files/util-linux-2.21.1-no-printf-alloc.patch?revision=1.2
|
http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/sys-apps/util-linux/files/util-linux-2.21.1-no-printf-alloc.patch?revision=1.2
|
||||||
|
|
||||||
[Gustavo: Ported to util-linux-2.25.1]
|
[Gustavo: Ported to util-linux-2.26]
|
||||||
|
|
||||||
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
|
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
|
||||||
|
|
||||||
diff -Nura util-linux-2.25.1.orig/configure.ac util-linux-2.25.1/configure.ac
|
diff -Nura util-linux-2.26.orig/configure.ac util-linux-2.26/configure.ac
|
||||||
--- util-linux-2.25.1.orig/configure.ac 2014-09-05 10:44:45.302080174 -0300
|
--- util-linux-2.26.orig/configure.ac 2015-02-19 09:11:13.146192401 -0300
|
||||||
+++ util-linux-2.25.1/configure.ac 2014-09-05 10:45:07.183832640 -0300
|
+++ util-linux-2.26/configure.ac 2015-02-20 08:13:32.740006582 -0300
|
||||||
@@ -791,7 +791,6 @@
|
@@ -840,7 +840,6 @@
|
||||||
|
)
|
||||||
UL_BUILD_INIT([libmount])
|
UL_BUILD_INIT([libmount])
|
||||||
UL_REQUIRES_LINUX([libmount])
|
|
||||||
UL_REQUIRES_BUILD([libmount], [libblkid])
|
UL_REQUIRES_BUILD([libmount], [libblkid])
|
||||||
-UL_REQUIRES_HAVE([libmount], [scanf_alloc_modifier], [scanf string alloc modifier])
|
-UL_REQUIRES_HAVE([libmount], [scanf_alloc_modifier], [scanf string alloc modifier])
|
||||||
AM_CONDITIONAL([BUILD_LIBMOUNT], [test "x$build_libmount" = xyes])
|
AM_CONDITIONAL([BUILD_LIBMOUNT], [test "x$build_libmount" = xyes])
|
||||||
AM_CONDITIONAL([BUILD_LIBMOUNT_TESTS], [test "x$build_libmount" = xyes -a "x$enable_static" = xyes])
|
AM_CONDITIONAL([BUILD_LIBMOUNT_TESTS], [test "x$build_libmount" = xyes -a "x$enable_static" = xyes])
|
||||||
|
|
||||||
diff -Nura util-linux-2.25.1.orig/lib/colors.c util-linux-2.25.1/lib/colors.c
|
diff -Nura util-linux-2.26.orig/libmount/src/tab_parse.c util-linux-2.26/libmount/src/tab_parse.c
|
||||||
--- util-linux-2.25.1.orig/lib/colors.c 2014-09-05 10:44:45.301080140 -0300
|
--- util-linux-2.26.orig/libmount/src/tab_parse.c 2015-02-16 09:57:34.070017496 -0300
|
||||||
+++ util-linux-2.25.1/lib/colors.c 2014-09-05 13:12:00.175205476 -0300
|
+++ util-linux-2.26/libmount/src/tab_parse.c 2015-02-20 08:13:32.741006617 -0300
|
||||||
@@ -16,6 +16,10 @@
|
|
||||||
#include "pathnames.h"
|
|
||||||
#include "strutils.h"
|
|
||||||
|
|
||||||
+#ifndef HAVE_SCANF_MS_MODIFIER
|
|
||||||
+# define UL_SCNsA "%s"
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
/*
|
|
||||||
* terminal-colors.d file types
|
|
||||||
*/
|
|
||||||
@@ -577,9 +581,19 @@
|
|
||||||
if (*p == '\0' || *p == '#')
|
|
||||||
continue;
|
|
||||||
|
|
||||||
+#ifndef HAVE_SCANF_MS_MODIFIER
|
|
||||||
+ size_t len = strlen(p) + 1;
|
|
||||||
+ cn = malloc(len);
|
|
||||||
+ seq = malloc(len);
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
rc = sscanf(p, UL_SCNsA" " /* name */
|
|
||||||
UL_SCNsA, /* color */
|
|
||||||
+#ifdef HAVE_SCANF_MS_MODIFIER
|
|
||||||
&cn, &seq);
|
|
||||||
+#else
|
|
||||||
+ cn, seq);
|
|
||||||
+#endif
|
|
||||||
if (rc == 2 && cn && seq)
|
|
||||||
rc = colors_add_scheme(cc, cn, seq); /* set rc=0 on success */
|
|
||||||
if (rc) {
|
|
||||||
diff -Nura util-linux-2.25.1.orig/libmount/src/tab_parse.c util-linux-2.25.1/libmount/src/tab_parse.c
|
|
||||||
--- util-linux-2.25.1.orig/libmount/src/tab_parse.c 2014-09-05 10:44:45.276079280 -0300
|
|
||||||
+++ util-linux-2.25.1/libmount/src/tab_parse.c 2014-09-05 10:51:22.500738967 -0300
|
|
||||||
@@ -22,6 +22,10 @@
|
@@ -22,6 +22,10 @@
|
||||||
#include "pathnames.h"
|
#include "pathnames.h"
|
||||||
#include "strutils.h"
|
#include "strutils.h"
|
||||||
|
@ -1,168 +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>
|
|
||||||
Signed-off-by: Gustavo Zacarias <gustavo@zacarias.com.ar>
|
|
||||||
---
|
|
||||||
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.0.4
|
|
||||||
|
|
@ -269,6 +269,11 @@ config BR2_PACKAGE_UTIL_LINUX_WRITE
|
|||||||
help
|
help
|
||||||
Send a message to another user
|
Send a message to another user
|
||||||
|
|
||||||
|
config BR2_PACKAGE_UTIL_LINUX_ZRAMCTL
|
||||||
|
bool "zramctl"
|
||||||
|
help
|
||||||
|
Set up and control zram devices
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
|
||||||
endif
|
endif
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
# From https://www.kernel.org/pub/linux/utils/util-linux/v2.25/sha256sums.asc
|
# From https://www.kernel.org/pub/linux/utils/util-linux/v2.26/sha256sums.asc
|
||||||
sha256 e0457f715b73f4a349e1acb08cb410bf0edc9a74a3f75c357070f31f70e33cd6 util-linux-2.25.2.tar.xz
|
sha256 a23c6f39dea0ed215ccd589509ffc7bb6f706f6e1a04760f493fb0fd7e93c489 util-linux-2.26.tar.xz
|
||||||
|
@ -4,8 +4,8 @@
|
|||||||
#
|
#
|
||||||
################################################################################
|
################################################################################
|
||||||
|
|
||||||
UTIL_LINUX_VERSION = $(UTIL_LINUX_VERSION_MAJOR).2
|
UTIL_LINUX_VERSION = $(UTIL_LINUX_VERSION_MAJOR)
|
||||||
UTIL_LINUX_VERSION_MAJOR = 2.25
|
UTIL_LINUX_VERSION_MAJOR = 2.26
|
||||||
UTIL_LINUX_SOURCE = util-linux-$(UTIL_LINUX_VERSION).tar.xz
|
UTIL_LINUX_SOURCE = util-linux-$(UTIL_LINUX_VERSION).tar.xz
|
||||||
UTIL_LINUX_SITE = $(BR2_KERNEL_MIRROR)/linux/utils/util-linux/v$(UTIL_LINUX_VERSION_MAJOR)
|
UTIL_LINUX_SITE = $(BR2_KERNEL_MIRROR)/linux/utils/util-linux/v$(UTIL_LINUX_VERSION_MAJOR)
|
||||||
|
|
||||||
@ -17,7 +17,10 @@ UTIL_LINUX_LICENSE_FILES = README.licensing Documentation/licenses/COPYING.GPLv2
|
|||||||
UTIL_LINUX_AUTORECONF = YES
|
UTIL_LINUX_AUTORECONF = YES
|
||||||
UTIL_LINUX_INSTALL_STAGING = YES
|
UTIL_LINUX_INSTALL_STAGING = YES
|
||||||
UTIL_LINUX_DEPENDENCIES = host-pkgconf
|
UTIL_LINUX_DEPENDENCIES = host-pkgconf
|
||||||
UTIL_LINUX_CONF_ENV = scanf_cv_type_modifier=no
|
# uClibc needs NTP_LEGACY for sys/timex.h -> ntp_gettime() support
|
||||||
|
# (used in logger.c), and the common default is N.
|
||||||
|
UTIL_LINUX_CONF_ENV = scanf_cv_type_modifier=no \
|
||||||
|
$(if $(BR2_TOOLCHAIN_USES_UCLIBC),ac_cv_header_sys_timex_h=no)
|
||||||
UTIL_LINUX_CONF_OPTS += \
|
UTIL_LINUX_CONF_OPTS += \
|
||||||
--disable-rpath \
|
--disable-rpath \
|
||||||
--disable-makeinstall-chown \
|
--disable-makeinstall-chown \
|
||||||
@ -107,7 +110,8 @@ UTIL_LINUX_CONF_OPTS += \
|
|||||||
$(if $(BR2_PACKAGE_UTIL_LINUX_VIPW),--enable-vipw,--disable-vipw) \
|
$(if $(BR2_PACKAGE_UTIL_LINUX_VIPW),--enable-vipw,--disable-vipw) \
|
||||||
$(if $(BR2_PACKAGE_UTIL_LINUX_WALL),--enable-wall,--disable-wall) \
|
$(if $(BR2_PACKAGE_UTIL_LINUX_WALL),--enable-wall,--disable-wall) \
|
||||||
$(if $(BR2_PACKAGE_UTIL_LINUX_WDCTL),--enable-wdctl,--disable-wdctl) \
|
$(if $(BR2_PACKAGE_UTIL_LINUX_WDCTL),--enable-wdctl,--disable-wdctl) \
|
||||||
$(if $(BR2_PACKAGE_UTIL_LINUX_WRITE),--enable-write,--disable-write)
|
$(if $(BR2_PACKAGE_UTIL_LINUX_WRITE),--enable-write,--disable-write) \
|
||||||
|
$(if $(BR2_PACKAGE_UTIL_LINUX_ZRAMCTL),--enable-zramctl,--disable-zramctl)
|
||||||
|
|
||||||
# In the host version of util-linux, we so far only require libuuid,
|
# In the host version of util-linux, we so far only require libuuid,
|
||||||
# and none of the util-linux utilities, so we disable all of them, unless
|
# and none of the util-linux utilities, so we disable all of them, unless
|
||||||
|
Loading…
Reference in New Issue
Block a user