Merge branch 'jc/pack-bitmap-unaligned'
authorJunio C Hamano <gitster@pobox.com>
Fri, 30 Jun 2017 20:45:24 +0000 (13:45 -0700)
committerJunio C Hamano <gitster@pobox.com>
Fri, 30 Jun 2017 20:45:24 +0000 (13:45 -0700)
An unaligned 32-bit access in pack-bitmap code ahs been corrected.

* jc/pack-bitmap-unaligned:
pack-bitmap: don't perform unaligned memory access

1  2 
pack-bitmap.c
diff --combined pack-bitmap.c
index a3ac3dccd4f8423fcd39ba0ee77a200500d75a81,09de9ba312dc0c30c4182e5e0d14a0218ffeb39a..327634cd71b5c8fdd5ab531493c2de020bee869d
@@@ -266,7 -266,7 +266,7 @@@ static int open_pack_bitmap_1(struct pa
                return -1;
  
        idx_name = pack_bitmap_filename(packfile);
 -      fd = git_open_noatime(idx_name);
 +      fd = git_open(idx_name);
        free(idx_name);
  
        if (fd < 0)
@@@ -627,7 -627,7 +627,7 @@@ static void show_objects_for_type
                        sha1 = nth_packed_object_sha1(bitmap_git.pack, entry->nr);
  
                        if (bitmap_git.hashes)
-                               hash = ntohl(bitmap_git.hashes[entry->nr]);
+                               hash = get_be32(bitmap_git.hashes + entry->nr);
  
                        show_reach(sha1, object_type, 0, hash, bitmap_git.pack, entry->offset);
                }
@@@ -673,7 -673,7 +673,7 @@@ int prepare_bitmap_walk(struct rev_inf
                struct object *object = pending_e[i].item;
  
                if (object->type == OBJ_NONE)
 -                      parse_object_or_die(object->oid.hash, NULL);
 +                      parse_object_or_die(&object->oid, NULL);
  
                while (object->type == OBJ_TAG) {
                        struct tag *tag = (struct tag *) object;
  
                        if (!tag->tagged)
                                die("bad tag");
 -                      object = parse_object_or_die(tag->tagged->oid.hash, NULL);
 +                      object = parse_object_or_die(&tag->tagged->oid, NULL);
                }
  
                if (object->flags & UNINTERESTING)