Re: [PATCH v4 3/5] archive-tar: write extended headers for file sizes >= 8GB
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Jul 14, 2016, 17:11 UTC
- Message-ID
- <xmqq60s8rvpl.fsf@gitster.mtv.corp.google.com>
- In-Reply-To
- <ac016bb4-9f69-7e03-bc99-7a5bbc1a1a33@kdbg.org>
Johannes Sixt <j6t@kdbg.org> writes:
Show 19 quoted lines
> Am 30.06.2016 um 11:09 schrieb Jeff King: >> +/* >> + * This is the max value that a ustar size header can specify, as it is fixed >> + * at 11 octal digits. POSIX specifies that we switch to extended headers at >> + * this size. >> + */ >> +#define USTAR_MAX_SIZE 077777777777UL > > This is too large by one bit for our 32-bit unsigned long on Windows: > > archive-tar.c: In function 'write_tar_entry': > archive-tar.c:295: warning: integer constant is too large for > unsigned long' type > archive-tar.c: In function 'write_global_extended_header': > archive-tar.c:332: warning: integer constant is too large for > unsigned long' type > archive-tar.c:335: warning: integer constant is too large for > unsigned long' type > archive-tar.c:335: warning: overflow in implicit constant conversion
Yikes. I guess we need ULL here, and it cascade to all the variables used to interact with this constant, but not everybody has "long long", so....