<feed xmlns='http://www.w3.org/2005/Atom'>
<title>squashfs-tools-ng.git/lib/fstree, branch v1.0.5</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.5</id>
<link rel='self' href='https://git.infraroot.at/squashfs-tools-ng.git/atom?h=v1.0.5'/>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/'/>
<updated>2021-06-25T15:37:56+00:00</updated>
<entry>
<title>libfstree: guard against link count and inode number overflow</title>
<updated>2021-06-25T15:37:56+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2021-06-24T12:47:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=9ba4d7a122dfc4e3e03d0112ad03115b3065a238'/>
<id>urn:sha1:9ba4d7a122dfc4e3e03d0112ad03115b3065a238</id>
<content type='text'>
If the hard link counter or the inode number counter overflow the
maximum representable value (for SquashFS 16 bit and 32 bit
respecitively), abort with an error message.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Fix normalization of slashes in filenames</title>
<updated>2020-12-29T11:39:17+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2020-12-29T11:10:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=b04ff42f1640a4dd67af043f08b62ac4ec96edc7'/>
<id>urn:sha1:b04ff42f1640a4dd67af043f08b62ac4ec96edc7</id>
<content type='text'>
All paths were canonicalized internally, which includes filtering
sequences of slashes and converting backslashes to slashes.
Furthermore, when unpacking files, filenames are sanity checked
and rejected if they contain forward OR backward slashes.

This is a problem on Unix-like systems, where files containing
backslashes are a legitimate use case (*cough* SystemD *cough*).

This patch removes the backslash conversion from the canonicalization
and modifies the sanity check to reject backslashes only on Windows.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Simplify hard link handling</title>
<updated>2019-12-23T19:19:46+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2019-12-23T18:32:31+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=04a80b89b8cd0d3b4d7a68d60f9c4f3ca56a9b72'/>
<id>urn:sha1:04a80b89b8cd0d3b4d7a68d60f9c4f3ca56a9b72</id>
<content type='text'>
 - For now, enforce that hard links don't point to a directories.
 - Instead of doing the swaping trickery, just reorder the flat list
   and hand out new inode numbers.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Minor cleanup in inode allocation</title>
<updated>2019-12-23T14:37:00+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2019-12-23T14:36:35+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=111702799a5a46e84a9bc54823a7fb9aae6a91cc'/>
<id>urn:sha1:111702799a5a46e84a9bc54823a7fb9aae6a91cc</id>
<content type='text'>
 - Remove unnecessary counter argument, we already have the
   total count.
 - Remove the return status, there is no failure branch.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Bring back the flat list of inodes in libfstree</title>
<updated>2019-12-22T23:50:00+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2019-12-22T23:42:53+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=9db873364de85e6b5f972dbd2bada80591ef8af4'/>
<id>urn:sha1:9db873364de85e6b5f972dbd2bada80591ef8af4</id>
<content type='text'>
It makes further processing simpler and doesn't leak the abstraction
into upper layers.

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>Add basic support for handling and serializing hard links</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:10:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=1466f1f8571aca423156ee7ef4094a0c082f88d7'/>
<id>urn:sha1:1466f1f8571aca423156ee7ef4094a0c082f88d7</id>
<content type='text'>
In libfstree, add a function to add a hard link to the fstree. The
hard links stores the target in the data.target field, canonicalizes
the target and sets a sentinel mode. A second function is used to
resolve link, i.e. replacing it with a direct pointer, setting another
sentinel mode and increasing the targets link count.

The post process function tries to resolve unresolved hard links and
only allocates inode numbers for nodes that aren't hard links. If the
target node of a hard link does not have an inode number yet, the two
need to be swapped, since this is also the order in which they are
serialized.

The serialization function in libcommon simply has to skip hard link
nodes and when writing directory entries, use the inode num/ref of
the target node.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Split the libfstree add_by_path tree traversal function out</title>
<updated>2019-12-19T15:34:10+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2019-12-18T18:57:22+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=0a6c5d7fa2f276b8e155d69bea17650bad46f089'/>
<id>urn:sha1:0a6c5d7fa2f276b8e155d69bea17650bad46f089</id>
<content type='text'>
Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Add an explicit link count to the fstree nodes</title>
<updated>2019-12-18T16:40:49+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2019-12-18T16:40:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=19b98cf450220b742987e7f0599ae284e93f8e54'/>
<id>urn:sha1:19b98cf450220b742987e7f0599ae284e93f8e54</id>
<content type='text'>
Gets initialized to 2 for directories, 1 for all other types. The count
of the parent node is automatically incremented.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Rename fstree "slink_target" to "target"</title>
<updated>2019-12-18T16:04:54+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2019-12-18T16:04:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=5dc3ab23d0552dc9460152f8a9089f25c8572d90'/>
<id>urn:sha1:5dc3ab23d0552dc9460152f8a9089f25c8572d90</id>
<content type='text'>
Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
</feed>
