From: Jonathan Nieder <jrnieder@gmail.com>
To: Tay Ray Chuan <rctay89@gmail.com>
Cc: Git Mailing List <git@vger.kernel.org>,
Junio C Hamano <gitster@pobox.com>,
Gabriel Corona <gabriel.corona@enst-bretagne.fr>
Subject: Re: [PATCH 5/6] http-push: check path length before using it
Date: Fri, 19 Nov 2010 12:33:39 -0600 [thread overview]
Message-ID: <20101119183339.GB26187@burratino> (raw)
In-Reply-To: <1290170790-2200-6-git-send-email-rctay89@gmail.com>
Tay Ray Chuan wrote:
> 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.
[...]
> --- 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) {
Nits: the usual idiom is
if (!strncmp(path, ...
to make it is obvious from looking at the left side that this is a
test for equality. The parentheses around the second parameter are
not needed here...
> + 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));
... or here. So perhaps:
if (path) {
const char *url = repo->path;
if (!url)
url = repo->url;
if (strncmp(path, url, repo->path_len)) {
error("Parsed path '%s' does not match url: '%s'\n",
path, url);
} else {
path += ...
By the way, is the error behavior correct? This prints a message with
"error: " and then continues anyway.
next prev parent reply other threads:[~2010-11-19 18:40 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-11-19 0:06 [PATCH] Normalise directory names when pushing to some WebDAV servers Gabriel Corona
2010-11-19 4:02 ` Tay Ray Chuan
2010-11-19 5:10 ` Jonathan Nieder
2010-11-19 12:46 ` [PATCH 0/6] http (dumb): end urls with slash Tay Ray Chuan
2010-11-19 12:46 ` [PATCH 1/6] shift end_url_with_slash() from http.[ch] to url.[ch] Tay Ray Chuan
2010-11-19 12:46 ` [PATCH 2/6] url: add str wrapper for end_url_with_slash() Tay Ray Chuan
2010-11-19 12:46 ` [PATCH 3/6] http-push: Normalise directory names when pushing to some WebDAV servers Tay Ray Chuan
2010-11-19 12:46 ` [PATCH 4/6] http-backend: use end_url_with_slash() Tay Ray Chuan
2010-11-19 12:46 ` [PATCH 5/6] http-push: check path length before using it Tay Ray Chuan
2010-11-19 12:46 ` [PATCH 6/6] http-push: add trailing slash at arg-parse time, instead of later on Tay Ray Chuan
2010-11-19 18:33 ` Jonathan Nieder [this message]
2010-11-20 4:28 ` [PATCH 5/6] http-push: check path length before using it Tay Ray Chuan
2010-11-19 19:18 ` [PATCH 0/6] http (dumb): end urls with slash Jonathan Nieder
2010-11-19 22:54 ` Junio C Hamano
2010-11-20 4:32 ` Tay Ray Chuan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20101119183339.GB26187@burratino \
--to=jrnieder@gmail.com \
--cc=gabriel.corona@enst-bretagne.fr \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=rctay89@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox