FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Redhat > Cluster Development

 
 
LinkBack Thread Tools
 
Old 10-15-2012, 09:46 AM
Steven Whitehouse
 
Default mkfs.gfs2: Check locktable more strictly for valid chars

Hi,

Looks good. Should we also be limiting the number of : to just one I
wonder?

Steve.

On Fri, 2012-10-12 at 15:37 +0100, Andrew Price wrote:
> Previously mkfs.gfs2 allowed any printable characters to be used in the
> locktable name. This causes problems when the locktable contains special
> characters such as '/'. This patch limits the locktable to alphanumeric
> characters plus hyphens and underscores.
>
> Ref: bz#862847
>
> Signed-off-by: Andrew Price <anprice@redhat.com>
> ---
> gfs2/man/mkfs.gfs2.8 | 3 ++-
> gfs2/mkfs/main_mkfs.c | 6 ++----
> 2 files changed, 4 insertions(+), 5 deletions(-)
>
> diff --git a/gfs2/man/mkfs.gfs2.8 b/gfs2/man/mkfs.gfs2.8
> index d17e272..4613305 100644
> --- a/gfs2/man/mkfs.gfs2.8
> +++ b/gfs2/man/mkfs.gfs2.8
> @@ -73,7 +73,8 @@ Clustername must match that in cluster.conf; only members of this
> cluster are permitted to use this file system.
> Fsname is a unique file system name used to distinguish this GFS2 file
> system from others created (1 to 16 characters). Lock_nolock doesn't
> -use this field.
> +use this field. Valid fIclusternamefRs and fIfsnamefRs may only contain
> +alphanumeric characters, hyphens (-) and underscores (_).
> .TP
> fB-VfP
> Print program version information, then exit.
> diff --git a/gfs2/mkfs/main_mkfs.c b/gfs2/mkfs/main_mkfs.c
> index 2d529d7..3bbb5b4 100644
> --- a/gfs2/mkfs/main_mkfs.c
> +++ b/gfs2/mkfs/main_mkfs.c
> @@ -259,10 +259,8 @@ static void test_locking(char *lockproto, char *locktable)
> exit(-1);
> }
> for (c = locktable; *c; c++) {
> - if (isspace(*c))
> - die( _("locktable error: contains space characters
"));
> - if (!isprint(*c))
> - die( _("locktable error: contains unprintable characters
"));
> + if (!isalnum(*c) && (*c != '-') && (*c != '_') && (*c != ':'))
> + die( _("locktable error: invalid character '%c'
"), *c);
> }
>
> c = strstr(locktable, ":");
 
Old 10-15-2012, 11:09 AM
Andrew Price
 
Default mkfs.gfs2: Check locktable more strictly for valid chars

On 15/10/12 10:46, Steven Whitehouse wrote:

Hi,

Looks good. Should we also be limiting the number of : to just one I
wonder?


That's already taken care of with a check a bit further down in that
function:


if (strstr(c, ":"))
die( _("locktable error: more than one colon present
"));

Andy



Steve.

On Fri, 2012-10-12 at 15:37 +0100, Andrew Price wrote:

Previously mkfs.gfs2 allowed any printable characters to be used in the
locktable name. This causes problems when the locktable contains special
characters such as '/'. This patch limits the locktable to alphanumeric
characters plus hyphens and underscores.

Ref: bz#862847

Signed-off-by: Andrew Price <anprice@redhat.com>
---
gfs2/man/mkfs.gfs2.8 | 3 ++-
gfs2/mkfs/main_mkfs.c | 6 ++----
2 files changed, 4 insertions(+), 5 deletions(-)

diff --git a/gfs2/man/mkfs.gfs2.8 b/gfs2/man/mkfs.gfs2.8
index d17e272..4613305 100644
--- a/gfs2/man/mkfs.gfs2.8
+++ b/gfs2/man/mkfs.gfs2.8
@@ -73,7 +73,8 @@ Clustername must match that in cluster.conf; only members of this
cluster are permitted to use this file system.
Fsname is a unique file system name used to distinguish this GFS2 file
system from others created (1 to 16 characters). Lock_nolock doesn't
-use this field.
+use this field. Valid fIclusternamefRs and fIfsnamefRs may only contain
+alphanumeric characters, hyphens (-) and underscores (_).
.TP
fB-VfP
Print program version information, then exit.
diff --git a/gfs2/mkfs/main_mkfs.c b/gfs2/mkfs/main_mkfs.c
index 2d529d7..3bbb5b4 100644
--- a/gfs2/mkfs/main_mkfs.c
+++ b/gfs2/mkfs/main_mkfs.c
@@ -259,10 +259,8 @@ static void test_locking(char *lockproto, char *locktable)
exit(-1);
}
for (c = locktable; *c; c++) {
- if (isspace(*c))
- die( _("locktable error: contains space characters
"));
- if (!isprint(*c))
- die( _("locktable error: contains unprintable characters
"));
+ if (!isalnum(*c) && (*c != '-') && (*c != '_') && (*c != ':'))
+ die( _("locktable error: invalid character '%c'
"), *c);
}

c = strstr(locktable, ":");
 

Thread Tools




All times are GMT. The time now is 04:44 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org