Working draft

N28 pax-long-hardlink

A hard link with a long name and a long target, in a pax path and linkpath respectively.

Accept(draft) Every implementation must accept this archive, and extract the expected tree below.

Category
name
Default policy
accepts it, as it allows linkname.no-nul: a linkname of exactly 100 bytes, without NUL
Files
N28-pax-long-hardlink.tar test archive, 4,608 bytes sha256 c55f4509aeb614405b6a271610210b7de3d74da1166d0dc4d7f2aeecb868b22c
N28-pax-long-hardlink.jsonexpected result
N28-pax-long-hardlink.txtannotated blocks
N28-pax-long-hardlink.pygenerator script

The case

The pax header has a path of 120 hs and a linkpath of 120 ts, and the hard link's header has truncated ones, as writers put there. In POSIX, a pax record overrides the corresponding field of the header, so the hard link is the 120 hs, and links to the file of 120 ts before it.

The expected tree:

pathkindcontents
ttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttfile7 bytes, sha256 c97ecfda
hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhfile7 bytes, sha256 c97ecfda

Seen in: pyDACP 1.0.1.

The archive

Every block of 512 bytes, to scale, with its offset. Hover over a field for its bytes.

N28-pax-long-hardlink: every block of the archive0x000000header: pax extended headername [0,100): "PaxHeader" + 91 NULnamemode [100,108): "0000644" + NUL, 644 (octal)uid [108,116): "0000000" + NUL, 0gid [116,124): "0000000" + NUL, 0size [124,136): "00000000202" + NUL, 130mtime [136,148): "00000000000" + NUL, 0chksum [148,156): "011073\0 ", 4667: the unsigned sum of the header, this field as spacestypeflag [156,157): "x", pax extended headerlinkname [157,257): 100 NULlinknamemagic [257,263): "ustar" + NULversion [263,265): "00"uname [265,297): 32 NULunamegname [297,329): 32 NULgnamedevmajor [329,337): "0000000" + NUL, 0devminor [337,345): "0000000" + NUL, 0prefix [345,500): 155 NULprefixpad [500,512): 12 NULname "PaxHeader" + 91 NUL0x000200data: pax records130 bytes of pax records, then 382 NUL; "130 path=tttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt\n""130 path=ttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt…0x000400header: regular filename [0,100): "tttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt"namemode [100,108): "0000644" + NUL, 644 (octal)uid [108,116): "0000000" + NUL, 0gid [116,124): "0000000" + NUL, 0size [124,136): "00000000007" + NUL, 7mtime [136,148): "00000000000" + NUL, 0chksum [148,156): "035724\0 ", 15316: the unsigned sum of the header, this field as spacestypeflag [156,157): "0", regular filelinkname [157,257): 100 NULlinknamemagic [257,263): "ustar" + NULversion [263,265): "00"uname [265,297): 32 NULunamegname [297,329): 32 NULgnamedevmajor [329,337): "0000000" + NUL, 0devminor [337,345): "0000000" + NUL, 0prefix [345,500): 155 NULprefixpad [500,512): 12 NULname "tttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt"0x000600data7 bytes, then 505 NUL to the end of the block; "target\n""target\n"0x000800header: pax extended headername [0,100): "PaxHeader" + 91 NULnamemode [100,108): "0000644" + NUL, 644 (octal)uid [108,116): "0000000" + NUL, 0gid [116,124): "0000000" + NUL, 0size [124,136): "00000000410" + NUL, 264mtime [136,148): "00000000000" + NUL, 0chksum [148,156): "011074\0 ", 4668: the unsigned sum of the header, this field as spacestypeflag [156,157): "x", pax extended headerlinkname [157,257): 100 NULlinknamemagic [257,263): "ustar" + NULversion [263,265): "00"uname [265,297): 32 NULunamegname [297,329): 32 NULgnamedevmajor [329,337): "0000000" + NUL, 0devminor [337,345): "0000000" + NUL, 0prefix [345,500): 155 NULprefixpad [500,512): 12 NULname "PaxHeader" + 91 NUL0x000a00data: pax records264 bytes of pax records, then 248 NUL; "130 path=hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\n"; "134 linkpath=tttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt\n""130 path=hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh…"134 linkpath=ttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt…0x000c00header: hardlinkname [0,100): "hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"namemode [100,108): "0000644" + NUL, 644 (octal)uid [108,116): "0000000" + NUL, 0gid [116,124): "0000000" + NUL, 0size [124,136): "00000000000" + NUL, 0mtime [136,148): "00000000000" + NUL, 0chksum [148,156): "062156\0 ", 25710: the unsigned sum of the header, this field as spacestypeflag [156,157): "1", hardlinklinkname [157,257): "tttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt"linknamemagic [257,263): "ustar" + NULversion [263,265): "00"uname [265,297): 32 NULunamegname [297,329): 32 NULgnamedevmajor [329,337): "0000000" + NUL, 0devminor [337,345): "0000000" + NUL, 0prefix [345,500): 155 NULprefixpad [500,512): 12 NULname "hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"linkname "tttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt"0x000e002 zero blocks: the end-of-archive markerbytes 0 to 512 of 1024: 512 NUL0x0010002 zero blocks, continuedbytes 512 to 1024 of 1024: 512 NUL0x001200end of fileNULprintable ASCIIspacecontrol character, such as a newlinebyte over 0x7fwritten by the case itself
Every block, as text
N28-pax-long-hardlink: must accept, and extract its tree

A hard link with a long name and a long target, in a pax `path` and `linkpath` respectively.

The pax header has a `path` of 120 `h`s and a `linkpath` of 120 `t`s, and the hard link's header
has truncated ones, as writers put there. In POSIX, a pax record overrides the corresponding field
of the header, so the hard link is the 120 `h`s, and links to the file of 120 `t`s before it.

Seen in: pyDACP 1.0.1.

0x000000  header: pax extended header
          name     [  0,100)  "PaxHeader" + 91 NUL
          mode     [100,108)  "0000644" + NUL  644 (octal)
          uid      [108,116)  "0000000" + NUL  0
          gid      [116,124)  "0000000" + NUL  0
          size     [124,136)  "00000000202" + NUL  130
          mtime    [136,148)  "00000000000" + NUL  0
          chksum   [148,156)  "011073\0 "  4667: the unsigned sum of the header, this field as spaces
          typeflag [156,157)  "x"  pax extended header
          linkname [157,257)  100 NUL
          magic    [257,263)  "ustar" + NUL
          version  [263,265)  "00"
          uname    [265,297)  32 NUL
          gname    [297,329)  32 NUL
          devmajor [329,337)  "0000000" + NUL  0
          devminor [337,345)  "0000000" + NUL  0
          prefix   [345,500)  155 NUL
          pad      [500,512)  12 NUL
0x000200  data: pax records
          130 bytes of pax records, then 382 NUL
          "130 path=tttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt\n"
0x000400  header: regular file
          name     [  0,100)  "tttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt"
          mode     [100,108)  "0000644" + NUL  644 (octal)
          uid      [108,116)  "0000000" + NUL  0
          gid      [116,124)  "0000000" + NUL  0
          size     [124,136)  "00000000007" + NUL  7
          mtime    [136,148)  "00000000000" + NUL  0
          chksum   [148,156)  "035724\0 "  15316: the unsigned sum of the header, this field as spaces
          typeflag [156,157)  "0"  regular file
          linkname [157,257)  100 NUL
          magic    [257,263)  "ustar" + NUL
          version  [263,265)  "00"
          uname    [265,297)  32 NUL
          gname    [297,329)  32 NUL
          devmajor [329,337)  "0000000" + NUL  0
          devminor [337,345)  "0000000" + NUL  0
          prefix   [345,500)  155 NUL
          pad      [500,512)  12 NUL
0x000600  data
          7 bytes, then 505 NUL to the end of the block
          "target\n"
0x000800  header: pax extended header
          name     [  0,100)  "PaxHeader" + 91 NUL
          mode     [100,108)  "0000644" + NUL  644 (octal)
          uid      [108,116)  "0000000" + NUL  0
          gid      [116,124)  "0000000" + NUL  0
          size     [124,136)  "00000000410" + NUL  264
          mtime    [136,148)  "00000000000" + NUL  0
          chksum   [148,156)  "011074\0 "  4668: the unsigned sum of the header, this field as spaces
          typeflag [156,157)  "x"  pax extended header
          linkname [157,257)  100 NUL
          magic    [257,263)  "ustar" + NUL
          version  [263,265)  "00"
          uname    [265,297)  32 NUL
          gname    [297,329)  32 NUL
          devmajor [329,337)  "0000000" + NUL  0
          devminor [337,345)  "0000000" + NUL  0
          prefix   [345,500)  155 NUL
          pad      [500,512)  12 NUL
0x000a00  data: pax records
          264 bytes of pax records, then 248 NUL
          "130 path=hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh\n"
          "134 linkpath=tttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt\n"
0x000c00  header: hardlink
          name     [  0,100)  "hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh"
          mode     [100,108)  "0000644" + NUL  644 (octal)
          uid      [108,116)  "0000000" + NUL  0
          gid      [116,124)  "0000000" + NUL  0
          size     [124,136)  "00000000000" + NUL  0
          mtime    [136,148)  "00000000000" + NUL  0
          chksum   [148,156)  "062156\0 "  25710: the unsigned sum of the header, this field as spaces
          typeflag [156,157)  "1"  hardlink
          linkname [157,257)  "tttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt"
          magic    [257,263)  "ustar" + NUL
          version  [263,265)  "00"
          uname    [265,297)  32 NUL
          gname    [297,329)  32 NUL
          devmajor [329,337)  "0000000" + NUL  0
          devminor [337,345)  "0000000" + NUL  0
          prefix   [345,500)  155 NUL
          pad      [500,512)  12 NUL
0x000e00  2 zero blocks: the end-of-archive marker
0x001200  end of file
Every byte, as a hex dump

As xxd writes it: xxd -r makes the archive of it.

00000000: 5061 7848 6561 6465 7200 0000 0000 0000  PaxHeader.......
00000010: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000020: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000030: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000040: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000050: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000060: 0000 0000 3030 3030 3634 3400 3030 3030  ....0000644.0000
00000070: 3030 3000 3030 3030 3030 3000 3030 3030  000.0000000.0000
00000080: 3030 3030 3230 3200 3030 3030 3030 3030  0000202.00000000
00000090: 3030 3000 3031 3130 3733 0020 7800 0000  000.011073. x...
000000a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000000b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000000c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000000d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000000e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000000f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000100: 0075 7374 6172 0030 3000 0000 0000 0000  .ustar.00.......
00000110: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000120: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000130: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000140: 0000 0000 0000 0000 0030 3030 3030 3030  .........0000000
00000150: 0030 3030 3030 3030 0000 0000 0000 0000  .0000000........
00000160: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000170: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000180: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000190: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000001a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000001b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000001c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000001d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000001e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000001f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000200: 3133 3020 7061 7468 3d74 7474 7474 7474  130 path=ttttttt
00000210: 7474 7474 7474 7474 7474 7474 7474 7474  tttttttttttttttt
00000220: 7474 7474 7474 7474 7474 7474 7474 7474  tttttttttttttttt
00000230: 7474 7474 7474 7474 7474 7474 7474 7474  tttttttttttttttt
00000240: 7474 7474 7474 7474 7474 7474 7474 7474  tttttttttttttttt
00000250: 7474 7474 7474 7474 7474 7474 7474 7474  tttttttttttttttt
00000260: 7474 7474 7474 7474 7474 7474 7474 7474  tttttttttttttttt
00000270: 7474 7474 7474 7474 7474 7474 7474 7474  tttttttttttttttt
00000280: 740a 0000 0000 0000 0000 0000 0000 0000  t...............
00000290: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000002a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000002b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000002c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000002d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000002e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000002f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000300: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000310: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000320: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000330: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000340: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000350: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000360: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000370: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000380: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000390: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000003a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000003b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000003c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000003d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000003e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000003f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000400: 7474 7474 7474 7474 7474 7474 7474 7474  tttttttttttttttt
00000410: 7474 7474 7474 7474 7474 7474 7474 7474  tttttttttttttttt
00000420: 7474 7474 7474 7474 7474 7474 7474 7474  tttttttttttttttt
00000430: 7474 7474 7474 7474 7474 7474 7474 7474  tttttttttttttttt
00000440: 7474 7474 7474 7474 7474 7474 7474 7474  tttttttttttttttt
00000450: 7474 7474 7474 7474 7474 7474 7474 7474  tttttttttttttttt
00000460: 7474 7474 3030 3030 3634 3400 3030 3030  tttt0000644.0000
00000470: 3030 3000 3030 3030 3030 3000 3030 3030  000.0000000.0000
00000480: 3030 3030 3030 3700 3030 3030 3030 3030  0000007.00000000
00000490: 3030 3000 3033 3537 3234 0020 3000 0000  000.035724. 0...
000004a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000004b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000004c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000004d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000004e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000004f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000500: 0075 7374 6172 0030 3000 0000 0000 0000  .ustar.00.......
00000510: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000520: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000530: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000540: 0000 0000 0000 0000 0030 3030 3030 3030  .........0000000
00000550: 0030 3030 3030 3030 0000 0000 0000 0000  .0000000........
00000560: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000570: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000580: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000590: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000005a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000005b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000005c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000005d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000005e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000005f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000600: 7461 7267 6574 0a00 0000 0000 0000 0000  target..........
00000610: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000620: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000630: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000640: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000650: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000660: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000670: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000680: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000690: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000006a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000006b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000006c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000006d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000006e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000006f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000700: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000710: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000720: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000730: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000740: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000750: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000760: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000770: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000780: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000790: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000007a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000007b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000007c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000007d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000007e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000007f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000800: 5061 7848 6561 6465 7200 0000 0000 0000  PaxHeader.......
00000810: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000820: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000830: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000840: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000850: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000860: 0000 0000 3030 3030 3634 3400 3030 3030  ....0000644.0000
00000870: 3030 3000 3030 3030 3030 3000 3030 3030  000.0000000.0000
00000880: 3030 3030 3431 3000 3030 3030 3030 3030  0000410.00000000
00000890: 3030 3000 3031 3130 3734 0020 7800 0000  000.011074. x...
000008a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000008b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000008c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000008d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000008e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000008f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000900: 0075 7374 6172 0030 3000 0000 0000 0000  .ustar.00.......
00000910: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000920: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000930: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000940: 0000 0000 0000 0000 0030 3030 3030 3030  .........0000000
00000950: 0030 3030 3030 3030 0000 0000 0000 0000  .0000000........
00000960: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000970: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000980: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000990: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000009a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000009b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000009c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000009d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000009e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000009f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000a00: 3133 3020 7061 7468 3d68 6868 6868 6868  130 path=hhhhhhh
00000a10: 6868 6868 6868 6868 6868 6868 6868 6868  hhhhhhhhhhhhhhhh
00000a20: 6868 6868 6868 6868 6868 6868 6868 6868  hhhhhhhhhhhhhhhh
00000a30: 6868 6868 6868 6868 6868 6868 6868 6868  hhhhhhhhhhhhhhhh
00000a40: 6868 6868 6868 6868 6868 6868 6868 6868  hhhhhhhhhhhhhhhh
00000a50: 6868 6868 6868 6868 6868 6868 6868 6868  hhhhhhhhhhhhhhhh
00000a60: 6868 6868 6868 6868 6868 6868 6868 6868  hhhhhhhhhhhhhhhh
00000a70: 6868 6868 6868 6868 6868 6868 6868 6868  hhhhhhhhhhhhhhhh
00000a80: 680a 3133 3420 6c69 6e6b 7061 7468 3d74  h.134 linkpath=t
00000a90: 7474 7474 7474 7474 7474 7474 7474 7474  tttttttttttttttt
00000aa0: 7474 7474 7474 7474 7474 7474 7474 7474  tttttttttttttttt
00000ab0: 7474 7474 7474 7474 7474 7474 7474 7474  tttttttttttttttt
00000ac0: 7474 7474 7474 7474 7474 7474 7474 7474  tttttttttttttttt
00000ad0: 7474 7474 7474 7474 7474 7474 7474 7474  tttttttttttttttt
00000ae0: 7474 7474 7474 7474 7474 7474 7474 7474  tttttttttttttttt
00000af0: 7474 7474 7474 7474 7474 7474 7474 7474  tttttttttttttttt
00000b00: 7474 7474 7474 740a 0000 0000 0000 0000  ttttttt.........
00000b10: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000b20: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000b30: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000b40: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000b50: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000b60: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000b70: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000b80: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000b90: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000ba0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000bb0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000bc0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000bd0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000be0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000bf0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000c00: 6868 6868 6868 6868 6868 6868 6868 6868  hhhhhhhhhhhhhhhh
00000c10: 6868 6868 6868 6868 6868 6868 6868 6868  hhhhhhhhhhhhhhhh
00000c20: 6868 6868 6868 6868 6868 6868 6868 6868  hhhhhhhhhhhhhhhh
00000c30: 6868 6868 6868 6868 6868 6868 6868 6868  hhhhhhhhhhhhhhhh
00000c40: 6868 6868 6868 6868 6868 6868 6868 6868  hhhhhhhhhhhhhhhh
00000c50: 6868 6868 6868 6868 6868 6868 6868 6868  hhhhhhhhhhhhhhhh
00000c60: 6868 6868 3030 3030 3634 3400 3030 3030  hhhh0000644.0000
00000c70: 3030 3000 3030 3030 3030 3000 3030 3030  000.0000000.0000
00000c80: 3030 3030 3030 3000 3030 3030 3030 3030  0000000.00000000
00000c90: 3030 3000 3036 3231 3536 0020 3174 7474  000.062156. 1ttt
00000ca0: 7474 7474 7474 7474 7474 7474 7474 7474  tttttttttttttttt
00000cb0: 7474 7474 7474 7474 7474 7474 7474 7474  tttttttttttttttt
00000cc0: 7474 7474 7474 7474 7474 7474 7474 7474  tttttttttttttttt
00000cd0: 7474 7474 7474 7474 7474 7474 7474 7474  tttttttttttttttt
00000ce0: 7474 7474 7474 7474 7474 7474 7474 7474  tttttttttttttttt
00000cf0: 7474 7474 7474 7474 7474 7474 7474 7474  tttttttttttttttt
00000d00: 7475 7374 6172 0030 3000 0000 0000 0000  tustar.00.......
00000d10: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000d20: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000d30: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000d40: 0000 0000 0000 0000 0030 3030 3030 3030  .........0000000
00000d50: 0030 3030 3030 3030 0000 0000 0000 0000  .0000000........
00000d60: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000d70: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000d80: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000d90: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000da0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000db0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000dc0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000dd0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000de0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000df0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000e00: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000e10: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000e20: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000e30: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000e40: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000e50: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000e60: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000e70: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000e80: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000e90: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000ea0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000eb0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000ec0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000ed0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000ee0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000ef0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000f00: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000f10: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000f20: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000f30: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000f40: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000f50: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000f60: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000f70: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000f80: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000f90: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000fa0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000fb0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000fc0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000fd0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000fe0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00000ff0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001000: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001010: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001020: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001030: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001040: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001050: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001060: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001070: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001080: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001090: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000010a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000010b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000010c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000010d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000010e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000010f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001100: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001110: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001120: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001130: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001140: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001150: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001160: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001170: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001180: 0000 0000 0000 0000 0000 0000 0000 0000  ................
00001190: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000011a0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000011b0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000011c0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000011d0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000011e0: 0000 0000 0000 0000 0000 0000 0000 0000  ................
000011f0: 0000 0000 0000 0000 0000 0000 0000 0000  ................

What implementations make of it

In the outcome column, ✅ means that the implementation follows the default policy.

implementationversionoutcomewhat it makes of it
GNU tartar (GNU tar) 1.35✅ acceptsthe expected tree
bsdtarbsdtar 3.8.10 - libarchive 3.8.10✅ acceptsthe expected tree
BusyBox tarBusyBox v1.38.0, defconfig✅ acceptsthe expected tree
7-Zip7-Zip (z) 26.05 (x64)✅ acceptsthe expected tree
Python tarfile, filter=data, as in pipCPython 3.15.2✅ acceptsthe expected tree
Python tarfile, filter=tarCPython 3.15.2✅ acceptsthe expected tree
Python tarfile, filter=fully_trustedCPython 3.15.2✅ acceptsthe expected tree
node-tartar 7.5.22✅ acceptsthe expected tree
node-tar, stricttar 7.5.22✅ acceptsthe expected tree
tar-fstar-fs 3.1.3, on tar-stream 3.2.2✅ acceptsthe expected tree
Java Commons CompressCommons Compress 1.28.0, Expander, on Java 27.0.1.0.2❌ another tree, or rejectstree A: hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh (0 B, e3b0c442), tttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt (7 B, c97ecfda)
.NET System.Formats.TarSystem.Formats.Tar of .NET 10.0.14, ExtractToDirectory✅ acceptsthe expected tree
PHP PharData, as in ComposerPharData of PHP 8.5.12, as Composer's TarDownloader calls it❌ another tree, or rejectstree B: hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh (0 B, e3b0c442), tttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt (7 B, c97ecfda)
Go containerd archive.Applycontainerd v2.4.2, archive.Apply, of go1.27.3✅ acceptsthe expected tree
Rust tartar 0.4.46, unpack✅ acceptsthe expected tree
Rust astral-tokio-tarastral-tokio-tar 0.7.0, unpack✅ acceptsthe expected tree
Rust tar-codec, as in uvtar-codec 0.0.15, with the policies of uv 0.13✅ acceptsthe expected tree
RubyGemsRubyGems 4.0.20 of Ruby 4.0.9, extract_tar_gz❌ another tree, or rejectstree C: tttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt (7 B, c97ecfda)
R untar, internalutils::untar of R 4.6.1, tar = "internal"✅ acceptsthe expected tree
Perl Archive::TarArchive::Tar 3.12 of Perl v5.44.0❌ another tree, or rejectstree D: hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh (7 B, c97ecfda), tttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt (7 B, c97ecfda)
Haskell tartar 0.7.2.0, extract, of GHC 9.14❌ another tree, or rejectstree E: hhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhhh (7 B, c97ecfda), tttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt (7 B, c97ecfda)
Julia Tar.jlTar 1.10.0 of Julia 1.13.3✅ acceptsthe expected tree
live-bootstrap untarmescc-tools-extra a151c245e512, as live-bootstrap pins it, built with cc❌ another tree, or rejectserror: unable to create hardlinks
live-bootstrap untar, --non-strictmescc-tools-extra a151c245e512, as live-bootstrap pins it, built with cc❌ another tree, or rejectstree F: PaxHeader (264 B, 799d3c80), tttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttttt0000644 (7 B, c97ecfda)

Prevalence in release tarballs

Release tarballs of Spack, nixpkgs, Guix and live-bootstrap, and samples of PyPI, crates.io and RubyGems with linkname.no-nul. The default policy accepts them.

ecosystemtarballswith itshare
Spack37,553140.04%
nixpkgs18,990150.08%
Guix10,16820.02%
PyPI10,00030.03%
crates.io5,0000none
RubyGems5,00010.02%
live-bootstrap1710none
total (distinct)82,586350.04%

See a sample of these 35 tarballs, with the sha256 of each and an example from it.