summaryrefslogtreecommitdiffstats
path: root/xlators
diff options
context:
space:
mode:
authorKaushal M <kaushal@redhat.com>2018-07-10 20:56:08 +0530
committerKaushal M <kaushal@redhat.com>2018-07-11 10:48:46 +0530
commite893eb1b23f62477e98e409eaf96941beeb27177 (patch)
treed6e53057c7cc2b1c9dc9c631ba29d2e089625834 /xlators
parent2e18269a80f5f0f0d8d28813aaf216cdb4477a9a (diff)
glusterd: _is_prefix should handle 0-length paths
If one of the paths given to _is_prefix is 0-length, then it is not a prefix of the other. Hence, _is_prefix should return false. Change-Id: I54aa577a64a58940ec91872d0d74dc19cff9106d fixes: bz#1599783 Signed-off-by: Kaushal M <kaushal@redhat.com>
Diffstat (limited to 'xlators')
-rw-r--r--xlators/mgmt/glusterd/src/glusterd-utils.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/xlators/mgmt/glusterd/src/glusterd-utils.c b/xlators/mgmt/glusterd/src/glusterd-utils.c
index 45fb4c67e87..d8a4a75a46e 100644
--- a/xlators/mgmt/glusterd/src/glusterd-utils.c
+++ b/xlators/mgmt/glusterd/src/glusterd-utils.c
@@ -1319,6 +1319,15 @@ _is_prefix (char *str1, char *str2)
len1 = strlen (str1);
len2 = strlen (str2);
small_len = min (len1, len2);
+
+ /*
+ * If either one (not both) of the strings are 0-length, they are not
+ * prefixes of each other.
+ */
+ if ((small_len == 0) && (len1 != len2)) {
+ return _gf_false;
+ }
+
for (i = 0; i < small_len; i++) {
if (str1[i] != str2[i]) {
prefix = _gf_false;