Re: [PATCH v2 4/6] fsck: check tag objects' headers
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Sep 10, 2014, 17:52 UTC
- Message-ID
- <xmqqfvfzgy6x.fsf@gitster.dls.corp.google.com>
- In-Reply-To
- <alpine.DEB.1.00.1409101553020.990@s15462909.onlinehome-server.info>
Johannes Schindelin <johannes.schindelin@gmx.de> writes:
Show 19 quoted lines
> + if (!skip_prefix(buffer, "tag ", &buffer)) {
> + ret = error_func(&tag->object, FSCK_ERROR, "invalid format - expected 'tag' line");
> + goto done;
> + }
> + eol = strchr(buffer, '\n');
> + if (!eol) {
> + ret = error_func(&tag->object, FSCK_ERROR, "invalid format - unexpected end after 'type' line");
> + goto done;
> + }
> + strbuf_addf(&sb, "refs/tags/%.*s", (int)(eol - buffer), buffer);
> + if (check_refname_format(sb.buf, 0))
> + error_func(&tag->object, FSCK_WARN, "invalid 'tag' name: %s", buffer);
> + buffer = eol + 1;
> +
> + if (!skip_prefix(buffer, "tagger ", &buffer)) {
> + /* early tags do not contain 'tagger' lines; warn only */
> + error_func(&tag->object, FSCK_WARN, "invalid format - expected 'tagger' line");
> + }
> + ret = fsck_ident(&buffer, &tag->object, error_func);Shouldn't this relate to the above conditional, to skip ident check on early tags that lack tagger lines?
> + > +done: > + free(to_free);
strbuf_release(&sb) here?
> + return ret; > +} > +