diff options
Diffstat (limited to 'xlators/protocol/server/src/server-protocol.c')
| -rw-r--r-- | xlators/protocol/server/src/server-protocol.c | 5 | 
1 files changed, 3 insertions, 2 deletions
diff --git a/xlators/protocol/server/src/server-protocol.c b/xlators/protocol/server/src/server-protocol.c index 993323a1d4e..608b3151358 100644 --- a/xlators/protocol/server/src/server-protocol.c +++ b/xlators/protocol/server/src/server-protocol.c @@ -5239,7 +5239,8 @@ build_volfile_path (xlator_t *this, const char *key, char *path,                                  /* Make sure that conf-dir doesn't                                   * contain ".." in path                                   */ -                                if (strstr (conf_dir_data->data, "..")) { +                                if ((gf_strstr (conf_dir_data->data, +                                                "/", "..")) == -1) {                                          ret = -1;                                          gf_log (this->name, GF_LOG_ERROR,                                                  "%s: invalid conf_dir", @@ -5251,7 +5252,7 @@ build_volfile_path (xlator_t *this, const char *key, char *path,                                   * contain "../" in path                                   */ -                                if (strstr (key, "../")) { +                                if ((gf_strstr (key, "/", "..")) == -1) {                                          ret = -1;                                          gf_log (this->name, GF_LOG_ERROR,                                                  "%s: invalid key", key);  | 
