git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v4 2/5] t5000: test tar files that overflow ustar headers

From
Junio C Hamano <gitster@pobox.com>
Date
Jul 14, 2016, 17:08 UTC
Message-ID
<xmqqa8hkrvu5.fsf@gitster.mtv.corp.google.com>
In-Reply-To
<19a2d02e-3918-3bc9-db34-66e12ab950e4@kdbg.org>
Johannes Sixt <j6t@kdbg.org> writes:
Show 18 quoted lines
> Am 14.07.2016 um 17:47 schrieb Johannes Schindelin:
>> On Thu, 30 Jun 2016, Jeff King wrote:
>>> The ustar format only has room for 11 (or 12, depending on
>>> some implementations) octal digits for the size and mtime of
>>> each file. For values larger than this, we have to add pax
>>> extended headers to specify the real data, and git does not
>>> yet know how to do so.
>>>
>>> [...]
>>>  t/t5000/19f9c8273ec45a8938e6999cb59b3ff66739902a | Bin 0 -> 2048 bytes
>>
>> It appears that this blob cannot be read when sizeof(unsigned long) == 4.
>> This happens to break the t5000 test on Windows, where that comparison
>> holds true.
>
> The problem occurs in parse_sha1_header_extended(), where the
> calculation of the size in the object header overflows our 32-bit
> unsigned long.

OK, then we'd want something that measures how big "unsigned long" is, and use it as a lazy prerequisite 64BIT_LONG, tweaking the other patch to t0006 the other Johannes sent yesterday.

Dscho? I'll revert the merge of 'js/t0006-for-v2.9.2' out of 'next' so that we can replace it with your newer version, but it needs to be massaged to lose the strong linkage with "time", as it is no longer "is our time big enough", I would think.

Thanks.
Previous: Johannes SixtNext: Johannes Sixt
Message 17 of 42 in “friendlier handling of overflows in archive-tar”
  1. 0/5 friendlier handling of overflows in archive-tarJeff King, Jun 30, 2016
  2. 5/5 archive-tar: drop return valueJeff King, Jun 30, 2016
  3. 3/5 archive-tar: write extended headers for file sizes >= 8GBJeff King, Jun 30, 2016
  4. Johannes SixtJul 14, 2016
  5. Junio C HamanoJul 14, 2016
  6. Jeff KingJul 14, 2016
  7. Torsten BögershausenJul 15, 2016
  8. 4/5 archive-tar: write extended headers for far-future mtimeJeff King, Jun 30, 2016
  9. 1/5 t9300: factor out portable "head -c" replacementJeff King, Jun 30, 2016
  10. Eric SunshineJul 1, 2016
  11. Junio C HamanoJul 1, 2016
  12. Jeff KingJul 1, 2016
  13. 6/5 t5000: use test_match_signalJeff King, Jun 30, 2016
  14. 2/5 t5000: test tar files that overflow ustar headersJeff King, Jun 30, 2016
  15. Johannes SchindelinJul 14, 2016
  16. Johannes SixtJul 14, 2016
  17. Junio C HamanoJul 14, 2016
  18. Johannes SixtJul 14, 2016
  19. Jeff KingJul 14, 2016
  20. Junio C HamanoJul 14, 2016
  21. Jeff KingJul 14, 2016
  22. Torsten BögershausenJul 15, 2016
  23. Jeff KingJul 15, 2016
  24. Junio C HamanoJul 14, 2016
  25. Jeff KingJul 14, 2016
  26. Jeff KingJul 14, 2016
  27. Junio C HamanoJul 14, 2016
  28. Junio C HamanoJul 14, 2016
  29. Jeff KingJul 14, 2016
  30. Junio C HamanoJul 14, 2016
  31. Jeff KingJul 14, 2016
  32. Junio C HamanoJul 14, 2016
  33. Jeff KingJul 14, 2016
  34. Junio C HamanoJul 14, 2016
  35. 0/2 ulong may only be 32-bit wideJunio C Hamano, Jul 14, 2016
  36. 2/2 archive-tar: huge offset and future timestamps would not work on 32-bitJunio C Hamano, Jul 14, 2016
  37. Jeff KingJul 14, 2016
  38. Junio C HamanoJul 14, 2016
  39. Duy NguyenJul 16, 2016
  40. 1/2 t0006: skip "far in the future" test when unsigned long is not long enoughJunio C Hamano, Jul 14, 2016
  41. Johannes SchindelinJul 15, 2016
  42. Junio C HamanoJul 15, 2016

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.