devsnd / tarindexer

python module for indexing tar files for fast access
GNU General Public License v3.0
74 stars 15 forks source link

Troubles with PAX Archives #8

Open systwi-again opened 1 year ago

systwi-again commented 1 year ago

First off I'd like to thank you for creating this nifty program. I've used it with many GNU tarballs in the past and it has worked fabulously.

Today I was trying to index a PAX (POSIX.1-2001) tarball, and tarindexer appeared to create the index just fine. However, when attempting to use the index to extract a file out of the tarball I encountered this error:

$ tarindexer -l backup.tar backup.tar.index 'home/systwi/Videos/hiking 2021.mkv' > '/tmp/hiking 2021.mkv'
Traceback (most recent call last):
  File "/usr/local/bin/tarindexer", line 123, in <module>
    main()
  File "/usr/local/bin/tarindexer", line 120, in main
    lookup(dbtarfile,indexfile,path)
  File "/usr/local/bin/tarindexer", line 90, in lookup
    buffer = tar.read(int(m[2]))
MemoryError

I'm guessing tarindexer simply doesn't support PAX archives (which makes me doubtful of the index's validity), especially since I searched the script for "ustar" and "pax" and didn't find anything. Is there any possibility that this functionality could be added to tarindexer? I'm not skilled enough with Python to hack the script myself.

I'm using Python 3.9.2 under Debian bullseye. My system has 2GB of RAM (only ~210MB used) but that's never been an issue for tarindexer in the past.

Thank you.