summaryrefslogtreecommitdiff
path: root/patch-delta.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2011-12-18 00:27:59 -0800
committerJunio C Hamano <gitster@pobox.com>2011-12-18 00:28:16 -0800
commit03f94ae9f909952ed5a78917ab319a312889354b (patch)
tree0fd041e8b390bd0d2a960ae629d8e965d363de92 /patch-delta.c
parent2c47789d817aaf745a5ce5d5f79619c634cc8566 (diff)
parent81b50f3ce40bfdd66e5d967bf82be001039a9a98 (diff)
downloadgit-jk/maint-strbuf-missing-init.tar.gz
Update jk/maint-strbuf-missing-init to builtin/ renamejk/maint-strbuf-missing-init
Diffstat (limited to 'patch-delta.c')
-rw-r--r--patch-delta.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/patch-delta.c b/patch-delta.c
index ed9db81fa8..d218faa02b 100644
--- a/patch-delta.c
+++ b/patch-delta.c
@@ -2,7 +2,7 @@
* patch-delta.c:
* recreate a buffer from a source and the delta produced by diff-delta.c
*
- * (C) 2005 Nicolas Pitre <nico@cam.org>
+ * (C) 2005 Nicolas Pitre <nico@fluxnic.net>
*
* This code is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License version 2 as
@@ -33,8 +33,7 @@ void *patch_delta(const void *src_buf, unsigned long src_size,
/* now the result size */
size = get_delta_hdr_size(&data, top);
- dst_buf = xmalloc(size + 1);
- dst_buf[size] = 0;
+ dst_buf = xmallocz(size);
out = dst_buf;
while (data < top) {
@@ -44,7 +43,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);