mirror of
https://github.com/git/git
synced 2024-08-28 12:09:19 +00:00
builtin/apply: handle parse_binary() failure
In parse_binary() there is: forward = parse_binary_hunk(&buffer, &size, &status, &used); if (!forward && !status) /* there has to be one hunk (forward hunk) */ return error(_("unrecognized binary patch at line %d"), linenr-1); so parse_binary() can return -1, because that's what error() returns. Also parse_binary_hunk() sets "status" to -1 in case of error and parse_binary() does "if (status) return status;". In this case parse_chunk() should not add -1 to the patchsize it computes. It is better for future libification efforts to make it just return -1. Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
db354b7f1b
commit
484e776158
|
@ -1863,6 +1863,11 @@ static struct fragment *parse_binary_hunk(char **buf_p,
|
|||
return NULL;
|
||||
}
|
||||
|
||||
/*
|
||||
* Returns:
|
||||
* -1 in case of error,
|
||||
* the length of the parsed binary patch otherwise
|
||||
*/
|
||||
static int parse_binary(char *buffer, unsigned long size, struct patch *patch)
|
||||
{
|
||||
/*
|
||||
|
@ -2008,6 +2013,8 @@ static int parse_chunk(char *buffer, unsigned long size, struct patch *patch)
|
|||
linenr++;
|
||||
used = parse_binary(buffer + hd + llen,
|
||||
size - hd - llen, patch);
|
||||
if (used < 0)
|
||||
return -1;
|
||||
if (used)
|
||||
patchsize = used + llen;
|
||||
else
|
||||
|
|
Loading…
Reference in a new issue