On Tue, Feb 12 2019, brian m. carlson wrote:

> Switch two hard-coded uses of 20 to references to the_hash_algo.
>
> Signed-off-by: brian m. carlson <sand...@crustytoothpaste.net>
> ---
>  pack-bitmap.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/pack-bitmap.c b/pack-bitmap.c
> index 6d6fa68563..603492c237 100644
> --- a/pack-bitmap.c
> +++ b/pack-bitmap.c
> @@ -138,7 +138,7 @@ static int load_bitmap_header(struct bitmap_index *index)
>  {
>       struct bitmap_disk_header *header = (void *)index->map;
>
> -     if (index->map_size < sizeof(*header) + 20)
> +     if (index->map_size < sizeof(*header) + the_hash_algo->rawsz)
>               return error("Corrupted bitmap index (missing header data)");
>
>       if (memcmp(header->magic, BITMAP_IDX_SIGNATURE, 
> sizeof(BITMAP_IDX_SIGNATURE)) != 0)
> @@ -157,7 +157,7 @@ static int load_bitmap_header(struct bitmap_index *index)
>                               "(Git requires BITMAP_OPT_FULL_DAG)");
>
>               if (flags & BITMAP_OPT_HASH_CACHE) {
> -                     unsigned char *end = index->map + index->map_size - 20;
> +                     unsigned char *end = index->map + index->map_size - 
> the_hash_algo->rawsz;
>                       index->hashes = ((uint32_t *)end) - 
> index->pack->num_objects;
>               }
>       }

Similarly to my other comments upthread, what happens in a repo where we
have a SHA-1 bitmap file & a SHA-1<->SHA-256 mapping?

Reply via email to