<feed xmlns='http://www.w3.org/2005/Atom'>
<title>squashfs-tools-ng.git/lib/tar, branch v0.6</title>
<subtitle>A new set of tools and libraries for working with SquashFS images</subtitle>
<id>https://git.infraroot.at/squashfs-tools-ng.git/atom?h=v0.6</id>
<link rel='self' href='https://git.infraroot.at/squashfs-tools-ng.git/atom?h=v0.6'/>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/'/>
<updated>2019-08-03T08:51:34+00:00</updated>
<entry>
<title>Fix tar header error reporting on 32 bit systems</title>
<updated>2019-08-03T08:51:34+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2019-08-03T08:51:34+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=d443bc79b599eb6e6054a0feb4d0d0654b2c683f'/>
<id>urn:sha1:d443bc79b599eb6e6054a0feb4d0d0654b2c683f</id>
<content type='text'>
If an extension header is rejected because its too big, the error path
would print the size as size_t, altough it is an uint64_t. On 64 bit
systems, this works because size_t is a 64 bit unsigned integer, on
32 bit systems, not so much.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Add ability to write_tar_header to embedd extended attributes</title>
<updated>2019-08-01T14:23:07+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2019-08-01T14:03:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=cccbd5aa139b8e0cac233f317cb3e7252daae0d9'/>
<id>urn:sha1:cccbd5aa139b8e0cac233f317cb3e7252daae0d9</id>
<content type='text'>
This commit patches the tar writer to generate a PAX header with SCHILY
xattr key/value pairs if requested.

The Schily format is used for two reasons:
 - It is simple
 - It is apparently more widely supported than the libarchive format

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Add propper copyright headers to all source files</title>
<updated>2019-07-30T04:53:25+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2019-07-30T04:53:25+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=7e00faaca0207eb6ee6cf109c09cc489d8fb7e3f'/>
<id>urn:sha1:7e00faaca0207eb6ee6cf109c09cc489d8fb7e3f</id>
<content type='text'>
Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Use safer string copy function to fill tar header</title>
<updated>2019-07-25T21:52:17+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2019-07-25T21:50:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=b485c92efac16d94a6a613bb6f839f36ba0b28be'/>
<id>urn:sha1:b485c92efac16d94a6a613bb6f839f36ba0b28be</id>
<content type='text'>
Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Enforce reasonable upper and low bounds on the size of tar headers</title>
<updated>2019-07-25T21:35:15+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2019-07-25T21:35:15+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=ba82a3812d39acf6c865478f72d7e68838c14f69'/>
<id>urn:sha1:ba82a3812d39acf6c865478f72d7e68838c14f69</id>
<content type='text'>
Since they are read directly into memory, blindly allocating the size
from the tar ball is probably a bad idea.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Fix processing of tar mtime on 32 bit systems</title>
<updated>2019-07-24T16:10:34+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2019-07-24T11:36:50+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=4fdfd1f62a9d50298b0bb71e8bea04174af4a3ab'/>
<id>urn:sha1:4fdfd1f62a9d50298b0bb71e8bea04174af4a3ab</id>
<content type='text'>
struct stat uses time_t to store time values. On some 32 bit systems,
this may be a 32 bit integer.

This patch adds a broken-out 64 bit time value to tar_header_decoded_t
and makes sure to clamp the value to +/- (2^32 - 1) if required when
writing it back to a struct stat.

Reported-by: Matt Turner &lt;mattst88@gmail.com&gt;
Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>cleanup: remove atime/ctime processing code</title>
<updated>2019-07-24T11:46:05+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2019-07-24T10:35:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=30fbd496a1793b4374873144432f9b7a996a689d'/>
<id>urn:sha1:30fbd496a1793b4374873144432f9b7a996a689d</id>
<content type='text'>
This commit removes all the code for parsing and processing atime/ctime
and values and related test code.

Caring about those is kind of pointless because squashfs can only store
mtime in inodes. The only relevant place is when generating a struct
stat from a squashfs inode or an fstree node.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Enable largefile support</title>
<updated>2019-07-24T07:16:16+00:00</updated>
<author>
<name>Matt Turner</name>
<email>mattst88@gmail.com</email>
</author>
<published>2019-07-23T20:48:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=05a30292f9d2be63af3b4c27d5ae89801da602a2'/>
<id>urn:sha1:05a30292f9d2be63af3b4c27d5ae89801da602a2</id>
<content type='text'>
Requires that config.h be included before other headers, since the macro
_FILE_OFFSET_BITS changes the definitions of things like 'struct stat'.
I chose to simply include it at the top of every C file and at
immediately after the double-inclusion guards of every header.

Signed-off-by: Matt Turner &lt;mattst88@gmail.com&gt;
Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>libtar: more lenient tar checksum verification</title>
<updated>2019-07-23T23:03:42+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2019-07-23T22:55:03+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=d6f15cb9b054ed76b5bee2e6924d4b0b2a5e52ae'/>
<id>urn:sha1:d6f15cb9b054ed76b5bee2e6924d4b0b2a5e52ae</id>
<content type='text'>
Until now, the tar checksum verification simply copied the header,
recomputed the checksum and compared it byte-for-byte with the
original.

However, not all implementations store the checksum the same way. For
instance, git-archive generates tar balls that use the same format as
for other octal numbers.

This patch makes the checksum verification more lenient by parsing the
checksum from the header and comparing it with the computed value
instead of copying the entire block and insisting on byte-for-byte
equivalence.

The result is better interoperabillity with existing tools and perhaps
slightly faster processing since the block doesn't have to be copied.

Reported-by: Matt Turner &lt;mattst88@gmail.com&gt;
Suggested-by: René Scharfe &lt;l.s.r@web.de&gt;
Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>cleanup: move error handling into read_retry</title>
<updated>2019-07-16T20:48:00+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2019-07-16T19:02:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=e3ef871d6a80d72db02c9ab1ef492e8f58c2ddeb'/>
<id>urn:sha1:e3ef871d6a80d72db02c9ab1ef492e8f58c2ddeb</id>
<content type='text'>
If read_retry fails to read the expected amount of data (EOF or otherwise),
it is almost always an error.

This commit renames read_retry to read_data and moves error handling
into the function, making a lot of error handling code redundant.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
</feed>
