Skip to content

Commit

Permalink
fsck: don't require an object struct in verify_headers()
Browse files Browse the repository at this point in the history
We only need the oid and type to pass on to report(). Let's accept the
broken-out parameters to give our callers more flexibility.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
peff authored and gitster committed Oct 28, 2019
1 parent 7854399 commit cc57900
Showing 1 changed file with 7 additions and 5 deletions.
12 changes: 7 additions & 5 deletions fsck.c
Expand Up @@ -687,15 +687,16 @@ static int fsck_tree(struct tree *item,
}

static int verify_headers(const void *data, unsigned long size,
struct object *obj, struct fsck_options *options)
const struct object_id *oid, enum object_type type,
struct fsck_options *options)
{
const char *buffer = (const char *)data;
unsigned long i;

for (i = 0; i < size; i++) {
switch (buffer[i]) {
case '\0':
return report(options, &obj->oid, obj->type,
return report(options, oid, type,
FSCK_MSG_NUL_IN_HEADER,
"unterminated header: NUL at offset %ld", i);
case '\n':
Expand All @@ -713,7 +714,7 @@ static int verify_headers(const void *data, unsigned long size,
if (size && buffer[size - 1] == '\n')
return 0;

return report(options, &obj->oid, obj->type,
return report(options, oid, type,
FSCK_MSG_UNTERMINATED_HEADER, "unterminated header");
}

Expand Down Expand Up @@ -772,7 +773,8 @@ static int fsck_commit(struct commit *commit, const char *buffer,
const char *buffer_begin = buffer;
const char *p;

if (verify_headers(buffer, size, &commit->object, options))
if (verify_headers(buffer, size, &commit->object.oid,
commit->object.type, options))
return -1;

if (!skip_prefix(buffer, "tree ", &buffer))
Expand Down Expand Up @@ -827,7 +829,7 @@ static int fsck_tag(struct tag *tag, const char *buffer,
struct strbuf sb = STRBUF_INIT;
const char *p;

ret = verify_headers(buffer, size, &tag->object, options);
ret = verify_headers(buffer, size, &tag->object.oid, tag->object.type, options);
if (ret)
goto done;

Expand Down

0 comments on commit cc57900

Please sign in to comment.