1
0
Fork 0
mirror of https://github.com/git/git.git synced 2024-05-23 06:46:09 +02:00

pack-bitmap: make bitmap header handling hash agnostic

Increase the checksum field in struct bitmap_disk_header to be
GIT_MAX_RAWSZ bytes in length and ensure that we hash the proper number
of bytes out when computing the bitmap checksum.

Signed-off-by: brian m. carlson <sandals@crustytoothpaste.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
brian m. carlson 2019-02-19 00:04:54 +00:00 committed by Junio C Hamano
parent 5a8643eff1
commit 0f4d6cada8
3 changed files with 3 additions and 3 deletions

View File

@ -535,7 +535,7 @@ void bitmap_writer_finish(struct pack_idx_entry **index,
header.entry_count = htonl(writer.selected_nr);
hashcpy(header.checksum, writer.pack_checksum);
hashwrite(f, &header, sizeof(header));
hashwrite(f, &header, sizeof(header) - GIT_MAX_RAWSZ + the_hash_algo->rawsz);
dump_bitmap(f, writer.commits);
dump_bitmap(f, writer.trees);
dump_bitmap(f, writer.blobs);

View File

@ -163,7 +163,7 @@ static int load_bitmap_header(struct bitmap_index *index)
}
index->entry_count = ntohl(header->entry_count);
index->map_pos += sizeof(*header);
index->map_pos += sizeof(*header) - GIT_MAX_RAWSZ + the_hash_algo->rawsz;
return 0;
}

View File

@ -14,7 +14,7 @@ struct bitmap_disk_header {
uint16_t version;
uint16_t options;
uint32_t entry_count;
unsigned char checksum[20];
unsigned char checksum[GIT_MAX_RAWSZ];
};
static const char BITMAP_IDX_SIGNATURE[] = {'B', 'I', 'T', 'M'};