Skip to content

Commit dd39379

Browse files
committed
Merge branch 'jc/ustar-checksum-is-unsigned'
"git archive" incorrectly computed the header checksum; the symptom was observed only when using pathnames with hi-bit set. * jc/ustar-checksum-is-unsigned: archive: ustar header checksum is computed unsigned
2 parents d692d34 + a5a46eb commit dd39379

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

archive-tar.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -139,13 +139,13 @@ static void strbuf_append_ext_header(struct strbuf *sb, const char *keyword,
139139

140140
static unsigned int ustar_header_chksum(const struct ustar_header *header)
141141
{
142-
const char *p = (const char *)header;
142+
const unsigned char *p = (const unsigned char *)header;
143143
unsigned int chksum = 0;
144-
while (p < header->chksum)
144+
while (p < (const unsigned char *)header->chksum)
145145
chksum += *p++;
146146
chksum += sizeof(header->chksum) * ' ';
147147
p += sizeof(header->chksum);
148-
while (p < (const char *)header + sizeof(struct ustar_header))
148+
while (p < (const unsigned char *)header + sizeof(struct ustar_header))
149149
chksum += *p++;
150150
return chksum;
151151
}

0 commit comments

Comments
 (0)