diff options
author | Jonathan Tan <jonathantanmy@google.com> | 2017-08-19 01:20:32 +0300 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-08-24 01:12:07 +0300 |
commit | 9e0f45f5a61d9d0556e6004198dd6a650be14bd9 (patch) | |
tree | f5037d6faeb9de15103198bd2801ecfa6946c5de /sha1_file.c | |
parent | d5a16761820f2539bf8610c8f0c64f610e29314e (diff) |
pack: move check_pack_index_ptr(), nth_packed_object_offset()
Signed-off-by: Jonathan Tan <jonathantanmy@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'sha1_file.c')
-rw-r--r-- | sha1_file.c | 33 |
1 files changed, 0 insertions, 33 deletions
diff --git a/sha1_file.c b/sha1_file.c index 20cb30b87b..52e9292ff2 100644 --- a/sha1_file.c +++ b/sha1_file.c @@ -1075,39 +1075,6 @@ int parse_sha1_header(const char *hdr, unsigned long *sizep) return parse_sha1_header_extended(hdr, &oi, 0); } -void check_pack_index_ptr(const struct packed_git *p, const void *vptr) -{ - const unsigned char *ptr = vptr; - const unsigned char *start = p->index_data; - const unsigned char *end = start + p->index_size; - if (ptr < start) - die(_("offset before start of pack index for %s (corrupt index?)"), - p->pack_name); - /* No need to check for underflow; .idx files must be at least 8 bytes */ - if (ptr >= end - 8) - die(_("offset beyond end of pack index for %s (truncated index?)"), - p->pack_name); -} - -off_t nth_packed_object_offset(const struct packed_git *p, uint32_t n) -{ - const unsigned char *index = p->index_data; - index += 4 * 256; - if (p->index_version == 1) { - return ntohl(*((uint32_t *)(index + 24 * n))); - } else { - uint32_t off; - index += 8 + p->num_objects * (20 + 4); - off = ntohl(*((uint32_t *)(index + 4 * n))); - if (!(off & 0x80000000)) - return off; - index += p->num_objects * 4 + (off & 0x7fffffff) * 8; - check_pack_index_ptr(p, index); - return (((uint64_t)ntohl(*((uint32_t *)(index + 0)))) << 32) | - ntohl(*((uint32_t *)(index + 4))); - } -} - off_t find_pack_entry_one(const unsigned char *sha1, struct packed_git *p) { |