diff options
author | Kaushal M <kaushal@redhat.com> | 2013-06-24 12:50:32 +0530 |
---|---|---|
committer | Vijay Bellur <vbellur@redhat.com> | 2013-07-02 02:58:01 -0700 |
commit | 7062eda1575214819f5c7411748b06be95e08ffa (patch) | |
tree | ae417d9795875c33dd45f8b64aad7fd9115805c8 | |
parent | ac62c953e499dca873fbf808b95df0feb50bda27 (diff) |
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 <kaushal@redhat.com>
Reviewed-on: http://review.gluster.org/5249
Reviewed-by: Amar Tumballi <amarts@redhat.com>
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vbellur@redhat.com>
-rw-r--r-- | libglusterfs/src/common-utils.c | 8 | ||||
-rw-r--r-- | tests/bugs/bug-977246.t | 21 |
2 files changed, 29 insertions, 0 deletions
diff --git a/libglusterfs/src/common-utils.c b/libglusterfs/src/common-utils.c index b44c1d0b370..ab3674eadec 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 00000000000..e07ee191939 --- /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; |