Commit 7519a60f authored by Junio C Hamano's avatar Junio C Hamano

Merge branch 'ds/find-unique-abbrev-optim'

While finding unique object name abbreviation, the code may
accidentally have read beyond the end of the array of object names
in a pack.

* ds/find-unique-abbrev-optim:
  sha1_name: fix uninitialized memory errors
parents 65ebfec5 21abed50
......@@ -542,20 +542,20 @@ static void find_abbrev_len_for_pack(struct packed_git *p,
/*
* first is now the position in the packfile where we would insert
* mad->hash if it does not exist (or the position of mad->hash if
* it does exist). Hence, we consider a maximum of three objects
* it does exist). Hence, we consider a maximum of two objects
* nearby for the abbreviation length.
*/
mad->init_len = 0;
if (!match) {
nth_packed_object_oid(&oid, p, first);
extend_abbrev_len(&oid, mad);
if (nth_packed_object_oid(&oid, p, first))
extend_abbrev_len(&oid, mad);
} else if (first < num - 1) {
nth_packed_object_oid(&oid, p, first + 1);
extend_abbrev_len(&oid, mad);
if (nth_packed_object_oid(&oid, p, first + 1))
extend_abbrev_len(&oid, mad);
}
if (first > 0) {
nth_packed_object_oid(&oid, p, first - 1);
extend_abbrev_len(&oid, mad);
if (nth_packed_object_oid(&oid, p, first - 1))
extend_abbrev_len(&oid, mad);
}
mad->init_len = mad->cur_len;
}
......
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