diff options
Diffstat (limited to 'src/delta.c')
-rw-r--r-- | src/delta.c | 32 |
1 files changed, 15 insertions, 17 deletions
diff --git a/src/delta.c b/src/delta.c index 073cba7c6..8d9e6146e 100644 --- a/src/delta.c +++ b/src/delta.c @@ -539,10 +539,11 @@ int git_delta_apply( *out = NULL; *out_len = 0; - /* Check that the base size matches the data we were given; - * if not we would underflow while accessing data from the - * base object, resulting in data corruption or segfault. - */ + /* + * Check that the base size matches the data we were given; + * if not we would underflow while accessing data from the + * base object, resulting in data corruption or segfault. + */ if ((hdr_sz(&base_sz, &delta, delta_end) < 0) || (base_sz != base_len)) { giterr_set(GITERR_INVALID, "failed to apply delta: base size does not match given data"); return -1; @@ -564,19 +565,18 @@ int git_delta_apply( while (delta < delta_end) { unsigned char cmd = *delta++; if (cmd & 0x80) { - /* cmd is a copy instruction; copy from the base. - */ + /* cmd is a copy instruction; copy from the base. */ size_t off = 0, len = 0; if (cmd & 0x01) off = *delta++; if (cmd & 0x02) off |= *delta++ << 8UL; if (cmd & 0x04) off |= *delta++ << 16UL; - if (cmd & 0x08) off |= *delta++ << 24UL; + if (cmd & 0x08) off |= ((unsigned) *delta++ << 24UL); if (cmd & 0x10) len = *delta++; if (cmd & 0x20) len |= *delta++ << 8UL; if (cmd & 0x40) len |= *delta++ << 16UL; - if (!len) len = 0x10000; + if (!len) len = 0x10000; if (base_len < off + len || res_sz < len) goto fail; @@ -584,11 +584,11 @@ int git_delta_apply( res_dp += len; res_sz -= len; - } - else if (cmd) { - /* cmd is a literal insert instruction; copy from - * the delta stream itself. - */ + } else if (cmd) { + /* + * cmd is a literal insert instruction; copy from + * the delta stream itself. + */ if (delta_end - delta < cmd || res_sz < cmd) goto fail; memcpy(res_dp, delta, cmd); @@ -596,10 +596,8 @@ int git_delta_apply( res_dp += cmd; res_sz -= cmd; - } - else { - /* cmd == 0 is reserved for future encodings. - */ + } else { + /* cmd == 0 is reserved for future encodings. */ goto fail; } } |