forked from pool/util-linux
This commit is contained in:
parent
6543308ae2
commit
1ea5b121f2
172
util-linux-2.13-mount_volumeid_label.patch
Normal file
172
util-linux-2.13-mount_volumeid_label.patch
Normal file
@ -0,0 +1,172 @@
|
|||||||
|
X-From-Line: mkoenig Thu Jun 21 13:32:01 2007
|
||||||
|
Return-Path: <kay.sievers@vrfy.org>
|
||||||
|
Received: from imap.suse.de [195.135.221.23]
|
||||||
|
by sor.suse.de with IMAP (fetchmail-6.3.5)
|
||||||
|
for <mkoenig@localhost> (single-drop); Thu, 21 Jun 2007 13:32:01 +0200 (CEST)
|
||||||
|
Received: from imap.suse.de ([unix socket])
|
||||||
|
by imap (Cyrus v2.2.12) with LMTPA;
|
||||||
|
Thu, 21 Jun 2007 13:31:14 +0200
|
||||||
|
X-Sieve: CMU Sieve 2.2
|
||||||
|
Received: from Relay2.suse.de (relay2.suse.de [149.44.160.89])
|
||||||
|
(using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
|
||||||
|
(Client CN "relay.suse.de", Issuer "CAcert Class 3 Root" (not verified))
|
||||||
|
by imap.suse.de (Postfix) with ESMTP id 5778914540D0
|
||||||
|
for <mkoenig@imap.suse.de>; Thu, 21 Jun 2007 13:31:14 +0200 (CEST)
|
||||||
|
Received: by Relay2.suse.de (Postfix)
|
||||||
|
id 436A020E91; Thu, 21 Jun 2007 13:31:14 +0200 (CEST)
|
||||||
|
Received: from emea5-mh.id5.novell.com (emea5-mh.id5.novell.com [149.44.160.113])
|
||||||
|
(using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits))
|
||||||
|
(No client certificate requested)
|
||||||
|
by Relay2.suse.de (Postfix) with ESMTP id 415D620E1C
|
||||||
|
for <mkoenig@suse.de>; Thu, 21 Jun 2007 13:31:14 +0200 (CEST)
|
||||||
|
Received: from [192.168.178.22] ([149.44.162.75])
|
||||||
|
by emea5-mh.id5.novell.com with ESMTP (TLS encrypted); Thu, 21 Jun 2007 13:31:06 +0200
|
||||||
|
Subject: Re: [PATCH] mount: use encoded labels for volume_id
|
||||||
|
From: Kay Sievers <kay.sievers@vrfy.org>
|
||||||
|
To: Matthias Koenig <mkoenig@suse.de>
|
||||||
|
Cc: util-linux-ng@vger.kernel.org, Karel Zak <kzak@redhat.com>
|
||||||
|
In-Reply-To: <n7xzm2tk2az.fsf@sor.suse.de>
|
||||||
|
References: <n7xzm2tk2az.fsf@sor.suse.de>
|
||||||
|
Content-Type: multipart/mixed; boundary="=-uhU5UxmJBOKYf2ti+EWn"
|
||||||
|
Date: Thu, 21 Jun 2007 13:31:52 +0200
|
||||||
|
X-Gnus-Mail-Source: file:~/MAIL/inbox
|
||||||
|
Message-Id: <1182425512.3436.17.camel@lov.localdomain>
|
||||||
|
Mime-Version: 1.0
|
||||||
|
X-Mailer: Evolution 2.10.1
|
||||||
|
Lines: 132
|
||||||
|
Xref: sor.suse.de inbox:3392
|
||||||
|
X-Gnus-Article-Number: 3392 Thu, 21 Jun 2007 14:21:03 +0200
|
||||||
|
|
||||||
|
|
||||||
|
--=-uhU5UxmJBOKYf2ti+EWn
|
||||||
|
Content-Type: text/plain
|
||||||
|
Content-Transfer-Encoding: 7bit
|
||||||
|
|
||||||
|
On Thu, 2007-06-21 at 12:52 +0200, Matthias Koenig wrote:
|
||||||
|
> since udev-112 exports now the label encoding function,
|
||||||
|
> here is a proposed patch.
|
||||||
|
> This fixes the problem of user mounts when filsystems
|
||||||
|
> with unsafe characters are given via LABEL= in fstab.
|
||||||
|
|
||||||
|
A patch to do this is already on the list:
|
||||||
|
http://www.mail-archive.com/util-linux-ng@vger.kernel.org/msg00196.html
|
||||||
|
I was waiting for Fedora rawhide to catch-up before resending is, so Karel
|
||||||
|
can at least compile-test it. :)
|
||||||
|
|
||||||
|
Configure should check for the new function in the library. Also uuid's may
|
||||||
|
need escaping with free textual uuids like DDF-raid uses. The probing context
|
||||||
|
"struct volume_id" should not be accessed directly anymore, if we require a
|
||||||
|
recent libvolume_id anyway. It will switch to an opaque object some day.
|
||||||
|
The known_fstype() lookup is also available now, and the TODO can be removed.
|
||||||
|
|
||||||
|
Patch attached again.
|
||||||
|
|
||||||
|
Thanks,
|
||||||
|
Kay
|
||||||
|
|
||||||
|
--=-uhU5UxmJBOKYf2ti+EWn
|
||||||
|
Content-Disposition: inline; filename=volume_id_encode.patch
|
||||||
|
Content-Type: text/x-patch; name=volume_id_encode.patch; charset=utf-8
|
||||||
|
Content-Transfer-Encoding: 7bit
|
||||||
|
|
||||||
|
diff --git a/configure.ac b/configure.ac
|
||||||
|
index e678773..38c4815 100644
|
||||||
|
--- a/configure.ac
|
||||||
|
+++ b/configure.ac
|
||||||
|
@@ -87,7 +87,7 @@ have_volume_id=no
|
||||||
|
if test x$with_fsprobe = xblkid; then
|
||||||
|
UTIL_CHECK_LIB(blkid, blkid_known_fstype)
|
||||||
|
elif test x$with_fsprobe = xvolume_id; then
|
||||||
|
- UTIL_CHECK_LIB(volume_id, volume_id_open_fd)
|
||||||
|
+ UTIL_CHECK_LIB(volume_id, volume_id_encode_string)
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test $have_blkid = no && test $have_volume_id = no; then
|
||||||
|
diff --git a/mount/fsprobe_volumeid.c b/mount/fsprobe_volumeid.c
|
||||||
|
index 8c13987..4b58e72 100644
|
||||||
|
--- a/mount/fsprobe_volumeid.c
|
||||||
|
+++ b/mount/fsprobe_volumeid.c
|
||||||
|
@@ -20,11 +20,13 @@ enum probe_type {
|
||||||
|
VOLUME_ID_TYPE,
|
||||||
|
};
|
||||||
|
|
||||||
|
-static char *probe(const char *device, enum probe_type type)
|
||||||
|
+static char
|
||||||
|
+*probe(const char *device, enum probe_type type)
|
||||||
|
{
|
||||||
|
int fd;
|
||||||
|
uint64_t size;
|
||||||
|
struct volume_id *id;
|
||||||
|
+ const char *val;
|
||||||
|
char *value = NULL;
|
||||||
|
|
||||||
|
fd = open(device, O_RDONLY);
|
||||||
|
@@ -42,13 +44,16 @@ static char *probe(const char *device, enum probe_type type)
|
||||||
|
if (volume_id_probe_all(id, 0, size) == 0) {
|
||||||
|
switch(type) {
|
||||||
|
case VOLUME_ID_LABEL:
|
||||||
|
- value = xstrdup(id->label);
|
||||||
|
+ if (volume_id_get_label(id, &val))
|
||||||
|
+ value = xstrdup(val);
|
||||||
|
break;
|
||||||
|
case VOLUME_ID_UUID:
|
||||||
|
- value = xstrdup(id->uuid);
|
||||||
|
+ if (volume_id_get_uuid(id, &val))
|
||||||
|
+ value = xstrdup(val);
|
||||||
|
break;
|
||||||
|
case VOLUME_ID_TYPE:
|
||||||
|
- value = xstrdup(id->type);
|
||||||
|
+ if (volume_id_get_type(id, &val))
|
||||||
|
+ value = xstrdup(val);
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
@@ -72,10 +77,8 @@ fsprobe_exit(void)
|
||||||
|
int
|
||||||
|
fsprobe_known_fstype(const char *fstype)
|
||||||
|
{
|
||||||
|
- /* TODO
|
||||||
|
if (volume_id_get_prober_by_type(fstype) != NULL)
|
||||||
|
return 1;
|
||||||
|
- */
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -101,11 +104,15 @@ const char *
|
||||||
|
fsprobe_get_devname_by_uuid(const char *uuid)
|
||||||
|
{
|
||||||
|
char dev[PATH_MAX];
|
||||||
|
+ size_t len;
|
||||||
|
|
||||||
|
if (!uuid)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
- snprintf(dev, sizeof(dev), PATH_DEV_BYUUID "/%s", uuid);
|
||||||
|
+ strcpy(dev, PATH_DEV_BYUUID "/");
|
||||||
|
+ len = strlen(PATH_DEV_BYUUID "/");
|
||||||
|
+ if (!volume_id_encode_string(uuid, &dev[len], sizeof(dev) - len) != 0)
|
||||||
|
+ return NULL;
|
||||||
|
return canonicalize(dev);
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -113,11 +120,13 @@ const char *
|
||||||
|
fsprobe_get_devname_by_label(const char *label)
|
||||||
|
{
|
||||||
|
char dev[PATH_MAX];
|
||||||
|
+ size_t len;
|
||||||
|
|
||||||
|
if (!label)
|
||||||
|
return NULL;
|
||||||
|
-
|
||||||
|
- snprintf(dev, sizeof(dev), PATH_DEV_BYLABEL "/%s", label);
|
||||||
|
+ strcpy(dev, PATH_DEV_BYLABEL "/");
|
||||||
|
+ len = strlen(PATH_DEV_BYLABEL "/");
|
||||||
|
+ if (!volume_id_encode_string(label, &dev[len], sizeof(dev) - len) != 0)
|
||||||
|
+ return NULL;
|
||||||
|
return canonicalize(dev);
|
||||||
|
}
|
||||||
|
-
|
||||||
|
|
||||||
|
--=-uhU5UxmJBOKYf2ti+EWn--
|
||||||
|
|
||||||
|
|
@ -1,3 +1,9 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Thu Jun 21 14:50:58 CEST 2007 - mkoenig@suse.de
|
||||||
|
|
||||||
|
- use encoded label names with volume_id [#232929]
|
||||||
|
util-linux-2.13-mount_volumeid_label.patch
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Thu Jun 14 10:52:25 CEST 2007 - mkoenig@suse.de
|
Thu Jun 14 10:52:25 CEST 2007 - mkoenig@suse.de
|
||||||
|
|
||||||
|
@ -21,7 +21,7 @@ License: BSD License and BSD-like, GNU General Public License (GPL)
|
|||||||
Group: System/Base
|
Group: System/Base
|
||||||
Autoreqprov: on
|
Autoreqprov: on
|
||||||
Version: 2.12r+git20070530
|
Version: 2.12r+git20070530
|
||||||
Release: 5
|
Release: 6
|
||||||
Summary: A collection of basic system utilities
|
Summary: A collection of basic system utilities
|
||||||
Source: ftp://ftp.kernel.org/pub/linux/utils/util-linux/%name-ng-%version.tar.bz2
|
Source: ftp://ftp.kernel.org/pub/linux/utils/util-linux/%name-ng-%version.tar.bz2
|
||||||
Source2: nologin.c
|
Source2: nologin.c
|
||||||
@ -98,6 +98,7 @@ Patch40: util-linux-2.13-sys_utils_arch.patch
|
|||||||
Patch42: util-linux-2.13-build_fix_intel_check.patch
|
Patch42: util-linux-2.13-build_fix_intel_check.patch
|
||||||
Patch43: util-linux-2.13-misc_utils_cal_ncurses.patch
|
Patch43: util-linux-2.13-misc_utils_cal_ncurses.patch
|
||||||
Patch44: util-linux-2.13-schedutils_chrt.patch
|
Patch44: util-linux-2.13-schedutils_chrt.patch
|
||||||
|
Patch45: util-linux-2.13-mount_volumeid_label.patch
|
||||||
##
|
##
|
||||||
## adjtimex
|
## adjtimex
|
||||||
##
|
##
|
||||||
@ -157,6 +158,7 @@ Authors:
|
|||||||
%patch42 -p1
|
%patch42 -p1
|
||||||
%patch43 -p1
|
%patch43 -p1
|
||||||
%patch44 -p1
|
%patch44 -p1
|
||||||
|
%patch45 -p1
|
||||||
#
|
#
|
||||||
cd adjtimex-*
|
cd adjtimex-*
|
||||||
%patch50 -p1
|
%patch50 -p1
|
||||||
@ -555,6 +557,9 @@ fi
|
|||||||
%endif
|
%endif
|
||||||
|
|
||||||
%changelog
|
%changelog
|
||||||
|
* Thu Jun 21 2007 - mkoenig@suse.de
|
||||||
|
- use encoded label names with volume_id [#232929]
|
||||||
|
util-linux-2.13-mount_volumeid_label.patch
|
||||||
* Thu Jun 14 2007 - mkoenig@suse.de
|
* Thu Jun 14 2007 - mkoenig@suse.de
|
||||||
- mkzimage_cmdline: activate commandline if used with -s [#279935]
|
- mkzimage_cmdline: activate commandline if used with -s [#279935]
|
||||||
* Wed Jun 13 2007 - mkoenig@suse.de
|
* Wed Jun 13 2007 - mkoenig@suse.de
|
||||||
|
Loading…
Reference in New Issue
Block a user