From 7062eda1575214819f5c7411748b06be95e08ffa Mon Sep 17 00:00:00 2001 From: Kaushal M Date: Mon, 24 Jun 2013 12:50:32 +0530 Subject: libglusterfs: Fix valid_host_name for consecutive dots The valid_host_name() function must reject addresses with consecutive dots in them. Change-Id: I1749de80c66e8fbad63b2e014f79e0203906030e BUG: 977246 Signed-off-by: Kaushal M Reviewed-on: http://review.gluster.org/5249 Reviewed-by: Amar Tumballi Tested-by: Gluster Build System Reviewed-by: Vijay Bellur --- libglusterfs/src/common-utils.c | 8 ++++++++ tests/bugs/bug-977246.t | 21 +++++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 tests/bugs/bug-977246.t diff --git a/libglusterfs/src/common-utils.c b/libglusterfs/src/common-utils.c index b44c1d0b..ab3674ea 100644 --- a/libglusterfs/src/common-utils.c +++ b/libglusterfs/src/common-utils.c @@ -1784,6 +1784,14 @@ valid_host_name (char *address, int length) goto out; } + /* Check for consecutive dots, which is invalid in a hostname and is + * ignored by strtok() + */ + if (strstr (dup_addr, "..")) { + ret = 0; + goto out; + } + /* gen-name */ temp_str = strtok_r (dup_addr, ".", &save_ptr); do { diff --git a/tests/bugs/bug-977246.t b/tests/bugs/bug-977246.t new file mode 100644 index 00000000..e07ee191 --- /dev/null +++ b/tests/bugs/bug-977246.t @@ -0,0 +1,21 @@ +#! /bin/bash + +# This test checks if address validation, correctly catches hostnames +# with consective dots, such as 'example..org', as invalid + +. $(dirname $0)/../include.rc + +cleanup; + +TEST glusterd +TEST pidof glusterd + +TEST $CLI volume create $V0 $H0:$B0/${V0}1 +TEST $CLI volume info $V0 +TEST $CLI volume start $V0 + +TEST ! $CLI volume set $V0 auth.allow example..org + +TEST $CLI volume stop $V0 + +cleanup; -- cgit