Hi,

the implementation of tar2sqfs was primarily based on `man 5 tar`[0],
Wikipedia[1] and trial/error with archives generated by GNU tar and
samples from [2] which I also integrated as test cases.

On 7/23/19 10:08 PM, René Scharfe wrote:
> Am 23.07.19 um 21:38 schrieb René Scharfe:
>> is_checksum_valid() in
>> https://github.com/AgentD/squashfs-tools-ng/blob/master/lib/tar/checksum.c
>> compares the formatted checksum byte-by-byte.  That seems
>> unnecessarily strict.  Parsing and comparing the numerical value
>> of the checksum would be more forgiving, better adhere to POSIX and
>> might be a tiny bit quicker.
>

I agree with that. The current code was probably the simplest way to
move forward with existing code after implementing sqfs2tar and it stayed
that way, since it worked with all archives I tested it with.

As for every file format parser, tar2sqfs should of course be as tolerant
as possible in what it accepts.

> I mean something like the patch below.  Code and text size are bigger,
> but it's more lenient and writes less.  Untested.
> 
I applied and tested the patch. It looks similar to the solution I came up
with and the test cases still pass. Also, on my system tar2sqfs now accepts
git-archive tar balls which it didn't before applying the patch, so I
would go with this.

Thanks,

David


[0] 
https://www.freebsd.org/cgi/man.cgi?query=tar&sektion=5&manpath=FreeBSD+12.0-RELEASE&arch=default&format=html
[1] https://en.wikipedia.org/wiki/Tar_(computing)#File_format
[2] https://dev.gentoo.org/~mgorny/articles/portability-of-tar-features.html

Reply via email to