Commit 8ec3d88f by Yong Li Committed by Edward Thomson

Avoid subtraction overflow in git_indexer_commit

parent 4a93a7fc
...@@ -914,12 +914,17 @@ int git_indexer_commit(git_indexer *idx, git_transfer_progress *stats) ...@@ -914,12 +914,17 @@ int git_indexer_commit(git_indexer *idx, git_transfer_progress *stats)
git_filebuf index_file = {0}; git_filebuf index_file = {0};
void *packfile_trailer; void *packfile_trailer;
if (!idx->parsed_header) {
giterr_set(GITERR_INDEXER, "incomplete pack header");
return -1;
}
if (git_hash_ctx_init(&ctx) < 0) if (git_hash_ctx_init(&ctx) < 0)
return -1; return -1;
/* Test for this before resolve_deltas(), as it plays with idx->off */ /* Test for this before resolve_deltas(), as it plays with idx->off */
if (idx->off < idx->pack->mwf.size - 20) { if (idx->off + 20 < idx->pack->mwf.size) {
giterr_set(GITERR_INDEXER, "Unexpected data at the end of the pack"); giterr_set(GITERR_INDEXER, "unexpected data at the end of the pack");
return -1; return -1;
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment