<feed xmlns='http://www.w3.org/2005/Atom'>
<title>squashfs-tools-ng.git/lib/sqfs, branch v1.0.4</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.4</id>
<link rel='self' href='https://git.infraroot.at/squashfs-tools-ng.git/atom?h=v1.0.4'/>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/'/>
<updated>2021-01-19T09:45:59+00:00</updated>
<entry>
<title>libsqfs: block processor: backport exact fragment matching</title>
<updated>2021-01-19T09:45:59+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2021-01-14T03:38:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=4249e123d321650050259fb602f06497519077d0'/>
<id>urn:sha1:4249e123d321650050259fb602f06497519077d0</id>
<content type='text'>
This commit is an amalgamation of the commits on master that
implement exact matching of fragment blocks during deduplication.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>libsqfs: implement exact matching in the default block writer.</title>
<updated>2021-01-19T09:45:59+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2020-12-05T23:35:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=854119c62621e017c13be5192a9494c0eea2fe2f'/>
<id>urn:sha1:854119c62621e017c13be5192a9494c0eea2fe2f</id>
<content type='text'>
Instead of comparing (compresed, disk-size, checksum) tuples to find
block matches, do an exact, byte-for-byte comparison of the data
stored on disk to avoid the possibility of a spurious colision.

Since this is the desired behaviour, make it the default, optionally
overrideable through a flag.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Fix: Move fragment consolidation back to block processor serial part</title>
<updated>2021-01-19T09:30:20+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2021-01-14T03:40:36+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=8db9823b63d82196b204cb969752eff6adb15756'/>
<id>urn:sha1:8db9823b63d82196b204cb969752eff6adb15756</id>
<content type='text'>
Keeping a list of fragments stored away in the current fragment block
and consolidating them in the thread pool takes them out of circulation.

If we have a lot of tiny fragments, this can lead to a situation where
all the limit is reached, but we cannot do anything, because we are
waiting for a block to complete, but they are all attached to the
current fragment block and the queue is empty.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Fix more normalization of slashes in filenames.</title>
<updated>2021-01-15T16:36:02+00:00</updated>
<author>
<name>Scott Moser</name>
<email>smoser@brickies.net</email>
</author>
<published>2021-01-14T02:31:00+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=8f5f8702412a98fd8f70a9342f82414127703806'/>
<id>urn:sha1:8f5f8702412a98fd8f70a9342f82414127703806</id>
<content type='text'>
It looks like the last commit missed a couple more occurences
where '\' was treated incorrectly.

Fixes were still needed in sqfs_dir_reader_find_by_path and
sqfs_dir_reader_get_full_hierarchy.

This path is used in extras/browse.c.
</content>
</entry>
<entry>
<title>Fix: libsquashfs: xattr_writer: return NULL if calloc fails</title>
<updated>2020-12-29T11:37:37+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2020-11-07T16:06:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=40ca906fa9f2f0e4e325432aff00433f2bb731bd'/>
<id>urn:sha1:40ca906fa9f2f0e4e325432aff00433f2bb731bd</id>
<content type='text'>
Instead of dereferencing the NULL pointer and crashing.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Fix block processor single block with don't fragment flag bug</title>
<updated>2020-08-11T22:25:34+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2020-08-10T09:08:12+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=18275733975c23b93419fbce7ca3105e6638786d'/>
<id>urn:sha1:18275733975c23b93419fbce7ca3105e6638786d</id>
<content type='text'>
This commit fixes a bug where the block processor state machine would
not add the "last block" flag if there is only one not entirely filled
block and the "don't fragment" flag is set. If the flag isn't set, the
inode start block position is not updated and points to the beginning
of the image instead.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Cleanup: move zlib/lz4 code from lib/sqfs/comp/ to lib/</title>
<updated>2020-08-04T17:27:42+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2020-07-26T13:05:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=959fde579e07836b73438e86cd58ba04657014f6'/>
<id>urn:sha1:959fde579e07836b73438e86cd58ba04657014f6</id>
<content type='text'>
The source code of a modified liblz4 and zlib are included with the
option to compile them into libsquashfs if they are not available on
the system.

So far, the source code was included directly in the compressor sub
directory within libsqsuashfs. This commit moves the libraries out
into the lib directory.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Fix: xattr reader: read the header after seaking to an OOL value</title>
<updated>2020-07-29T11:31:08+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2020-07-29T11:29:16+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=06972b6b45ff32090359d3b272f197e4cd9fb1e7'/>
<id>urn:sha1:06972b6b45ff32090359d3b272f197e4cd9fb1e7</id>
<content type='text'>
If an xattr value is stored OOL, the value actually holds an 8 byte
reference to another, previously stored value. This reference points
to the header that we need to read to know the actual size of the
value before reading it, not the value itself, so after reading the
reference and seeking to it, the xattr reader needs to read the actual
header.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Fix block bounds checking in libsquashfs data reader</title>
<updated>2020-06-20T17:18:32+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2020-06-20T16:52:46+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=94cfa86b56792e8b95e3807c8174e348d70eac59'/>
<id>urn:sha1:94cfa86b56792e8b95e3807c8174e348d70eac59</id>
<content type='text'>
Instead of doing the fragile size comparison in both loops, simply
bail from the function if offset is out of bounds, clamp the size
to the available range of the file and abail if it is zero.

As a result, a lot of checks can be removed and the function will not
return data beyond EOF.

This problem occoured with files that have a short last block instead
of a fragment.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Fix: don't include alloca.h on systems that don't provide this header</title>
<updated>2020-06-13T14:09:40+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2020-06-13T14:09:40+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=fcbf4c346c8a9b88679983614218e90a44fe8f2a'/>
<id>urn:sha1:fcbf4c346c8a9b88679983614218e90a44fe8f2a</id>
<content type='text'>
This commit fixes a build issue on BSD based systems, where alloca
is defined in stdlib.h and there is no such thing as "alloca.h".

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