Jeff King <peff@xxxxxxxx> writes: > I was specifically thinking of this (on top of your patch): > > diff --git a/remote-curl.c b/remote-curl.c > index e6f3b63..63680a8 100644 > --- a/remote-curl.c > +++ b/remote-curl.c > @@ -134,14 +134,12 @@ static struct discovery* discover_refs(const char *service) > last->buf_alloc = strbuf_detach(&buffer, &last->len); > last->buf = last->buf_alloc; > > - if (maybe_smart && 5 <= last->len && last->buf[4] == '#') { > + strbuf_addf(&exp, "application/x-%s-advertisement", service); > + if (maybe_smart && !strbuf_cmp(&exp, &type)) { > /* > * smart HTTP response; validate that the service > * pkt-line matches our request. > */ > - strbuf_addf(&exp, "application/x-%s-advertisement", service); > - if (strbuf_cmp(&exp, &type)) > - die("invalid content-type %s", type.buf); > if (packet_get_line(&buffer, &last->buf, &last->len) <= 0) > die("%s has invalid packet header", refs_url); > if (buffer.len && buffer.buf[buffer.len - 1] == '\n') > > To just follow the dumb path if we don't get the content-type we expect. > We may want to keep the '#' format check in addition (packet_get_line > will check it and die, anyway, but we may want to drop back to > considering it dumb, just to protect against a badly configured dumb > server which uses our mime type, but I do not think it likely). Yeah, but it doesn't cost anything to check, so let's do so. Does this look good to both of you (relative to Shawn's patch)? remote-curl.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/remote-curl.c b/remote-curl.c index e6f3b63..933c69a 100644 --- a/remote-curl.c +++ b/remote-curl.c @@ -134,14 +134,14 @@ static struct discovery* discover_refs(const char *service) last->buf_alloc = strbuf_detach(&buffer, &last->len); last->buf = last->buf_alloc; - if (maybe_smart && 5 <= last->len && last->buf[4] == '#') { + strbuf_addf(&exp, "application/x-%s-advertisement", service); + if (maybe_smart && + (5 <= last->len && last->buf[4] == '#') && + !strbuf_cmp(&exp, &type)) { /* * smart HTTP response; validate that the service * pkt-line matches our request. */ - strbuf_addf(&exp, "application/x-%s-advertisement", service); - if (strbuf_cmp(&exp, &type)) - die("invalid content-type %s", type.buf); if (packet_get_line(&buffer, &last->buf, &last->len) <= 0) die("%s has invalid packet header", refs_url); if (buffer.len && buffer.buf[buffer.len - 1] == '\n') -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html