<feed xmlns='http://www.w3.org/2005/Atom'>
<title>squashfs-tools-ng.git/lib/tar, branch v1.0.1</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=v1.0.1</id>
<link rel='self' href='https://git.infraroot.at/squashfs-tools-ng.git/atom?h=v1.0.1'/>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/'/>
<updated>2020-05-30T15:49:40+00:00</updated>
<entry>
<title>Cleanup: sqfs2tar: break up and simplify the repacking code</title>
<updated>2020-05-30T15:49:40+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2020-05-27T13:29:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=36e70b384e1360e47f473be54ef3c0599bf82844'/>
<id>urn:sha1:36e70b384e1360e47f473be54ef3c0599bf82844</id>
<content type='text'>
 - Move the xattr extraction and repacking to xattr.c
 - Don't on-the-fly delete the tar xattr list, use the function
   from libtar.a
 - Split minor tasks into static helper functions
   - creating a libtar xattr struct from libsqfs xattr data
   - finding a hard link entry from current path and inode number

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>libtar: fix size computation of PAX line length</title>
<updated>2020-05-18T12:00:31+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2020-05-18T12:00:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=692cbd0079658a8eb048c9b00dadec2d69d28b14'/>
<id>urn:sha1:692cbd0079658a8eb048c9b00dadec2d69d28b14</id>
<content type='text'>
This commit attempts to fix the following two problems:

 - The number of digits computation returning an off-by-one result
   if the number is 10, or the resulting digit string starts
   with "10". This results in one-too-many padding bytes, corrupting
   the rest of the archive since the headers now don't start at
   multiples of 512 anymore.

 - Adding the line length prefix affects the line length (duh). If it
   grows far enough to require more digits, the result is a similar
   problem. This is a converging series that we need to compute the
   limit of.

Unit tests for this still need to be added. Or maybe I can convince a
bored undergrad student to provide an induction proof.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Skip PAX global headers</title>
<updated>2020-04-22T12:22:44+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2020-04-22T12:22:44+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=c6b65ee8a9a57d51956ee462fa1d61fd90d61f40'/>
<id>urn:sha1:c6b65ee8a9a57d51956ee462fa1d61fd90d61f40</id>
<content type='text'>
Tar archives can contain set two kinds of PAX headers:
 - local headers that modify the attributes of the next file
 - global headers that set defaults for all files

The later is used "... not widely used", according to tar(5)
and has been deliberately not implemented.

Some programs (e.g. git-archive) *do* generate them (in the case
of git, it stores the commit hash).

This commit adds a code path that skips a PAX global header entirely
and resumes tar parsing, instead of erroneusly reporting it as an
entry.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Remove some configure time sizeof checks</title>
<updated>2020-04-17T21:52:52+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2020-04-17T21:52:52+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=16a22bebb0bb4a28aec9ca76442af93462fc200e'/>
<id>urn:sha1:16a22bebb0bb4a28aec9ca76442af93462fc200e</id>
<content type='text'>
In libtar, the sizeof time_t checked when trying to store a time value.
It is pointless using the preprocessor here, as we can simply do an
if (sizeof(time_t) &lt; ...) check and the compiler will take care
optimizing away one or the other branch.

After changing the libtar check and the corresponding unit tests, the
sizeof check can be removed from configure.ac, along with other unused
sizeof checks.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Cleanup: split read_header.c in libtar.a</title>
<updated>2020-04-17T21:31:32+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2020-04-17T21:20:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=1fe3f86230a970b3974f16a6bc2e819fdaf55b58'/>
<id>urn:sha1:1fe3f86230a970b3974f16a6bc2e819fdaf55b58</id>
<content type='text'>
Simply moving the pax header decoding to a separate file and splitting
out the common helper functions should be a good start.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Cleanup pax header parser a little</title>
<updated>2020-02-28T15:11:19+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2020-02-28T15:11:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=f4ca30a3a901a33ab29d2df80e9bc3649385f699'/>
<id>urn:sha1:f4ca30a3a901a33ab29d2df80e9bc3649385f699</id>
<content type='text'>
This commit tries to untangle the logic of parsing and sanitizing the
pax header length field and the associated bounds checks.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Add libtar.a function to create hardlink records</title>
<updated>2019-12-23T12:55:38+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2019-12-23T12:41:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=b4e5a24a3031c83ca51b50d34dea1a05aedf7b44'/>
<id>urn:sha1:b4e5a24a3031c83ca51b50d34dea1a05aedf7b44</id>
<content type='text'>
Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Add hard link support to gensquashfs and tar2sqfs</title>
<updated>2019-12-22T21:07:44+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2019-12-19T15:31:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=b16616ef092e8cd97674aac3380c5d7c600d7c61'/>
<id>urn:sha1:b16616ef092e8cd97674aac3380c5d7c600d7c61</id>
<content type='text'>
In libtar, set a special flag if the header is actually a hard link.

In tar2sqfs, create a hard link node and skip the rest for hard links.
Also refues to set the root attributes from a hard link, it may refere
to a node that we have missed earlier, there is nothing else that we
can do here.

In fstree_from_file, add a "link" command for adding hard links.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Fix tar GNU sparse header parsing</title>
<updated>2019-12-15T01:31:54+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2019-12-15T01:30:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=724524cd401325120de9d96e6a1023c3561c8879'/>
<id>urn:sha1:724524cd401325120de9d96e6a1023c3561c8879</id>
<content type='text'>
Extract the filename correctly.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Better support for reading/writing non-ASCII xattr values from/to tar</title>
<updated>2019-12-13T14:49:00+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2019-12-13T14:47:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=262fc48eb9e246ddb7315f5a14e7f6f58ca987c1'/>
<id>urn:sha1:262fc48eb9e246ddb7315f5a14e7f6f58ca987c1</id>
<content type='text'>
Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
</feed>
