diff options
author | Junio C Hamano <gitster@pobox.com> | 2009-06-20 21:46:10 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2009-06-20 21:46:10 -0700 |
commit | 7c74c3926ad60ba1bbfed13355f00a29813a0f32 (patch) | |
tree | 45d5169b6377988e617a9d1a2096b98f31d07a49 | |
parent | d4f6bc887de7957645b998a0b0e22bc4048f36dd (diff) | |
parent | 48fb7deb5bbd87933e7d314b73d7c1b52667f80f (diff) | |
download | git-7c74c3926ad60ba1bbfed13355f00a29813a0f32.tar.gz git-7c74c3926ad60ba1bbfed13355f00a29813a0f32.tar.xz |
Merge branch 'lt/maint-unsigned-left-shift'
* lt/maint-unsigned-left-shift:
Fix big left-shifts of unsigned char
-rw-r--r-- | attr.c | 3 | ||||
-rw-r--r-- | base85.c | 2 | ||||
-rw-r--r-- | builtin-pack-objects.c | 3 | ||||
-rw-r--r-- | builtin-unpack-objects.c | 4 | ||||
-rw-r--r-- | delta.h | 5 | ||||
-rw-r--r-- | index-pack.c | 6 | ||||
-rw-r--r-- | patch-delta.c | 2 | ||||
-rw-r--r-- | sha1_file.c | 3 |
8 files changed, 12 insertions, 16 deletions
@@ -35,8 +35,7 @@ static struct git_attr *(git_attr_hash[HASHSIZE]); static unsigned hash_name(const char *name, int namelen) { - unsigned val = 0; - unsigned char c; + unsigned val = 0, c; while (namelen--) { c = *name++; @@ -91,7 +91,7 @@ void encode_85(char *buf, const unsigned char *data, int bytes) unsigned acc = 0; int cnt; for (cnt = 24; cnt >= 0; cnt -= 8) { - int ch = *data++; + unsigned ch = *data++; acc |= ch << cnt; if (--bytes == 0) break; diff --git a/builtin-pack-objects.c b/builtin-pack-objects.c index 9742b45c4..941cc2d73 100644 --- a/builtin-pack-objects.c +++ b/builtin-pack-objects.c @@ -653,8 +653,7 @@ static void rehash_objects(void) static unsigned name_hash(const char *name) { - unsigned char c; - unsigned hash = 0; + unsigned c, hash = 0; if (!name) return 0; diff --git a/builtin-unpack-objects.c b/builtin-unpack-objects.c index 9a773239c..8e831be47 100644 --- a/builtin-unpack-objects.c +++ b/builtin-unpack-objects.c @@ -422,8 +422,8 @@ static void unpack_delta_entry(enum object_type type, unsigned long delta_size, static void unpack_one(unsigned nr) { unsigned shift; - unsigned char *pack, c; - unsigned long size; + unsigned char *pack; + unsigned long size, c; enum object_type type; obj_list[nr].offset = consumed_bytes; @@ -90,12 +90,11 @@ static inline unsigned long get_delta_hdr_size(const unsigned char **datap, const unsigned char *top) { const unsigned char *data = *datap; - unsigned char cmd; - unsigned long size = 0; + unsigned long cmd, size = 0; int i = 0; do { cmd = *data++; - size |= (cmd & ~0x80) << i; + size |= (cmd & 0x7f) << i; i += 7; } while (cmd & 0x80 && data < top); *datap = data; diff --git a/index-pack.c b/index-pack.c index 6e93ee6af..0c92bafcb 100644 --- a/index-pack.c +++ b/index-pack.c @@ -293,8 +293,8 @@ static void *unpack_entry_data(unsigned long offset, unsigned long size) static void *unpack_raw_entry(struct object_entry *obj, union delta_base *delta_base) { - unsigned char *p, c; - unsigned long size; + unsigned char *p; + unsigned long size, c; off_t base_offset; unsigned shift; void *data; @@ -312,7 +312,7 @@ static void *unpack_raw_entry(struct object_entry *obj, union delta_base *delta_ p = fill(1); c = *p; use(1); - size += (c & 0x7fUL) << shift; + size += (c & 0x7f) << shift; shift += 7; } obj->size = size; diff --git a/patch-delta.c b/patch-delta.c index ed9db81fa..ef748ce96 100644 --- a/patch-delta.c +++ b/patch-delta.c @@ -44,7 +44,7 @@ void *patch_delta(const void *src_buf, unsigned long src_size, if (cmd & 0x01) cp_off = *data++; if (cmd & 0x02) cp_off |= (*data++ << 8); if (cmd & 0x04) cp_off |= (*data++ << 16); - if (cmd & 0x08) cp_off |= (*data++ << 24); + if (cmd & 0x08) cp_off |= ((unsigned) *data++ << 24); if (cmd & 0x10) cp_size = *data++; if (cmd & 0x20) cp_size |= (*data++ << 8); if (cmd & 0x40) cp_size |= (*data++ << 16); diff --git a/sha1_file.c b/sha1_file.c index e73cd4fc0..8f5fe62d5 100644 --- a/sha1_file.c +++ b/sha1_file.c @@ -1162,8 +1162,7 @@ unsigned long unpack_object_header_buffer(const unsigned char *buf, unsigned long len, enum object_type *type, unsigned long *sizep) { unsigned shift; - unsigned char c; - unsigned long size; + unsigned long size, c; unsigned long used = 0; c = buf[used++]; |