[PATCH 5/6] http-push: check path length before using it
- From
Tay Ray Chuan <rctay89@gmail.com>
- Date
- Nov 19, 2010, 12:46 UTC
- Message-ID
- <1290170790-2200-6-git-send-email-rctay89@gmail.com>
- In-Reply-To
- <1290170790-2200-5-git-send-email-rctay89@gmail.com>
We use path_len to skip the base url/path, but we do not know for sure if path does indeed contain the base url/path. Check if this is so.
Signed-off-by: Tay Ray Chuan <rctay89@gmail.com> --- http-push.c | 10 ++++++++-- 1 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/http-push.c b/http-push.c index 565e580..1c34b00 100644 --- a/http-push.c +++ b/http-push.c @@ -1116,8 +1116,14 @@ static void handle_remote_ls_ctx(struct xml_ctx *ctx, int tag_closed) } } if (path) { - path += repo->path_len; - ls->dentry_name = xstrdup(path); + if (strncmp(path, + (repo->path ? repo->path : repo->url), + repo->path_len) == 0) { + path += repo->path_len; + ls->dentry_name = xstrdup(path); + } else + error("Parsed path '%s' does not match url: '%s'\n", + path, (repo->path ? repo->path : repo->url)); } } else if (!strcmp(ctx->name, DAV_PROPFIND_COLLECTION)) { ls->dentry_flags |= IS_DIR;
-- 1.7.3.67.g2a10b