<feed xmlns='http://www.w3.org/2005/Atom'>
<title>squashfs-tools-ng.git/lib/sqfs, branch v1.3.2</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.3.2</id>
<link rel='self' href='https://git.infraroot.at/squashfs-tools-ng.git/atom?h=v1.3.2'/>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/'/>
<updated>2024-01-24T08:56:10+00:00</updated>
<entry>
<title>libsqfs: add a threshold for extended directory inodes with index</title>
<updated>2024-01-24T08:56:10+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2023-01-19T14:18:43+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=d81b85ba4db12c2052a8fdd3b4e77343740d6fba'/>
<id>urn:sha1:d81b85ba4db12c2052a8fdd3b4e77343740d6fba</id>
<content type='text'>
mksquashfs generates extended inodes if a directory contains 256
entries. libsquashfs so far only generated extended inodes if there
is no other way to encode it. Mimic the behaviour of mksquashfs by
adding a threshold.

For this to work, the "sqfs_inode_set_xattr_index" function has to
be changed to not immediately try to demote inodes to basic types.
The fstree serialization is modified to do that itself if the index
is 0xFFFFFFFF and the target is not a directory inode.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Get rid of the built-in copy of LZ4</title>
<updated>2022-11-22T07:17:44+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2022-11-22T07:17:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=47e531197b18a0e9806bf8e3a2e69f203f5efd13'/>
<id>urn:sha1:47e531197b18a0e9806bf8e3a2e69f203f5efd13</id>
<content type='text'>
On Linux or BSD distributions we have a native version installed
via package manager. On Windows, we can just build it from source
like the other libraries.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Make some string functions from libcompat available to libsquashfs</title>
<updated>2022-11-21T14:27:10+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2022-11-21T13:25:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=91e8aafc8259115b7fff81d46bee82bca036526e'/>
<id>urn:sha1:91e8aafc8259115b7fff81d46bee82bca036526e</id>
<content type='text'>
Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>libsqfs: Fix an overzealous bounds check in the block processor</title>
<updated>2022-11-18T15:21:12+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2022-11-18T15:17:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=9d189b6091a7011bfac8a9c09af750614d82a10d'/>
<id>urn:sha1:9d189b6091a7011bfac8a9c09af750614d82a10d</id>
<content type='text'>
When (during fragment deduplication) a fragment block is read back
from disk and unpacked, it can happen that it is _exactly_ the
given block size. The bounds check did '&gt;=' instead of '&gt;' and
failed in that case with a "data corruption" error.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>libsqfs: Initialize the return value in sqfs_compressor_create</title>
<updated>2022-11-18T15:21:11+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2022-11-18T14:35:04+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=3bf38f07f0172b4698c205f72d923e9a37e53da7'/>
<id>urn:sha1:3bf38f07f0172b4698c205f72d923e9a37e53da7</id>
<content type='text'>
Initialize the output compressor pointer to NULL, so if the function
fails, the value is propperly initialized to a NULL pointer instead
of relying on the function user to initialize it.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>block writer: further cleanup of the block writer logic</title>
<updated>2022-10-10T18:54:37+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2022-09-25T20:09:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=20b963c15b391999b5915649ccab60403f5e0f8f'/>
<id>urn:sha1:20b963c15b391999b5915649ccab60403f5e0f8f</id>
<content type='text'>
Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>block writer: move block comaprison to utility function</title>
<updated>2022-09-20T06:47:02+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2022-09-18T14:04:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=56edfefb9718f72bd45093e0efd76bd88645fa89'/>
<id>urn:sha1:56edfefb9718f72bd45093e0efd76bd88645fa89</id>
<content type='text'>
Slightly modify the byte-for-byte comparison function to compare an
arbitrary range in a file and move it to libutil. Instead of calling
it for each block in the block writer, simply let it check an entire
range in the block writer and compute the range position/size of the
reference ahead, before looking for potential matches.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>block writer: remove open coded array</title>
<updated>2022-09-20T06:47:02+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2022-09-18T12:56:54+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=310d0f23da22435be13864c93364359f0cb7f443'/>
<id>urn:sha1:310d0f23da22435be13864c93364359f0cb7f443</id>
<content type='text'>
Instead of open coding it, use the array_t type from libutil.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Make sqfs_tree_node_get_path more robust</title>
<updated>2022-07-08T17:17:35+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2022-07-05T10:16:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=75063b2e14dacc13fcbeeba24e580198a7c1c638'/>
<id>urn:sha1:75063b2e14dacc13fcbeeba24e580198a7c1c638</id>
<content type='text'>
Test against various invariants:
 - Every non-root node must have a name
 - The root node muts not have a name
 - The name must not be ".." or "."
 - The name must not contain '/'
 - The loop that chases parent pointers must terminate, i.e. we must
   never reach the starting state again (link loop).

Furthermore, make sure the sum of all path components plus separators
does not overflow.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Move sqfs_tree_node_get_path to libsquashfs</title>
<updated>2022-07-08T17:17:35+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2022-07-04T18:01:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=3946cf086183f8dd4d5d115f52ba1b87560b7ce4'/>
<id>urn:sha1:3946cf086183f8dd4d5d115f52ba1b87560b7ce4</id>
<content type='text'>
Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
</feed>
