Details
-
Bug
-
Status: Open
-
Major
-
Resolution: Unresolved
-
1.20
-
None
-
None
-
- Ubuntu 19.10.
- Gnu tar 1.30
Description
I am seeing an IllegalArgumentException when attempting to scan a (gnu) tar file containing a backup of my home directory. The entry is a sqlite database table used by chromium.
The archive file is 62 GB and over 1 million files. ( ! ) (Can you tell I'm a developer?)
The error is:
java.lang.IllegalArgumentException: At offset 0, 12 byte binary number exceeds maximum signed long value java.lang.IllegalArgumentException: At offset 0, 12 byte binary number exceeds maximum signed long value at org.apache.commons.compress.archivers.tar.TarUtils.parseBinaryBigInteger(TarUtils.java:231)
From instrumenting the code I can determine that the TarArchiveEntry reports:
- name: ./snap/chromium/1005/.config/chromium/Default/Storage/ext/jajcoljhdglkjpfefjkgiohbhnkkmipm/def/GPUCache/data_3
- mode: 0600
- size: 53248
- real: 4202496
The (presumed) sparse headers are:
c3 ca 04 c1 00 00 02 00 03 00 00 00 | 00 10 00 00 04 00 00 00 00 04 00 00 | 03 00 00 00 01 00 00 00 00 00 00 00 | fc 00 00 00 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 73 77 00 00 | 00 00 00 00 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 00 00 00 00 | 00 00 00 00 00 00 00 00 00 00 00 00
And for this specific entry
- buffer: c3 ca 04 c1 00 00 02 00 03 00 00 00
- remainder: ca 04 c1 00 00 02 00 03 00 00 00
- neg: false
- value: -65259544571650071836229632
I'll add the full header in a comment later today. It looks likely that the header format isn't properly recognized.