Commit 49b74bc
committed
gh-149578: Fix tarfile.open failing on PAX archives with only global headers
When a PAX format tar archive contains only global headers and no
regular members, tarfile.open() raised ReadError because the
EOFHeaderError from reaching end-of-archive after the global header
was being caught and converted to SubsequentHeaderError in
TarInfo._proc_pax(). This prevented the caller from handling
end-of-archive normally.
Fix by letting EOFHeaderError propagate when processing a global
header (XGLTYPE), while still treating it as a SubsequentHeaderError
for extended headers (XHDTYPE) where a following file entry is
mandatory.1 parent bc1be4f commit 49b74bc
3 files changed
Lines changed: 40 additions & 0 deletions
File tree
- Lib
- test
- Misc/NEWS.d/next/Library
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1565 | 1565 | | |
1566 | 1566 | | |
1567 | 1567 | | |
| 1568 | + | |
| 1569 | + | |
| 1570 | + | |
| 1571 | + | |
| 1572 | + | |
| 1573 | + | |
| 1574 | + | |
| 1575 | + | |
1568 | 1576 | | |
1569 | 1577 | | |
1570 | 1578 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2297 | 2297 | | |
2298 | 2298 | | |
2299 | 2299 | | |
| 2300 | + | |
| 2301 | + | |
| 2302 | + | |
| 2303 | + | |
| 2304 | + | |
| 2305 | + | |
| 2306 | + | |
| 2307 | + | |
| 2308 | + | |
| 2309 | + | |
| 2310 | + | |
| 2311 | + | |
| 2312 | + | |
| 2313 | + | |
| 2314 | + | |
| 2315 | + | |
| 2316 | + | |
| 2317 | + | |
| 2318 | + | |
| 2319 | + | |
| 2320 | + | |
| 2321 | + | |
| 2322 | + | |
| 2323 | + | |
| 2324 | + | |
| 2325 | + | |
| 2326 | + | |
| 2327 | + | |
| 2328 | + | |
2300 | 2329 | | |
2301 | 2330 | | |
2302 | 2331 | | |
| |||
Lines changed: 3 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
0 commit comments