<feed xmlns='http://www.w3.org/2005/Atom'>
<title>squashfs-tools-ng.git/lib/util, branch v1.3.0</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.0</id>
<link rel='self' href='https://git.infraroot.at/squashfs-tools-ng.git/atom?h=v1.3.0'/>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/'/>
<updated>2024-02-14T08:21:30+00:00</updated>
<entry>
<title>Fix win32 filename sanitation for cases were we have clashes</title>
<updated>2024-02-14T08:21:30+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2024-02-14T08:21:30+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=358073d713deb16460ae633d5a48a8e48180369f'/>
<id>urn:sha1:358073d713deb16460ae633d5a48a8e48180369f</id>
<content type='text'>
We fix filenames containing components like COM1 or PRN by appending
an underscore ('_'). A squashfs archive may contain files that already
have such a modifed name (e.g. COM1_) which would now potentially
clash.

This is fixed by matching any number of trailing '_' characters for
the bad name and adding another one. So all existing names that start
with an illegal prefix and have any number of underscores, will always
have an additional one appended.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Add utility function to fixup Windows file paths</title>
<updated>2024-02-09T14:59:37+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2024-02-09T14:59:37+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=ae048f7ac4a9ab6576ca6842aa13e5c9c31e35a7'/>
<id>urn:sha1:ae048f7ac4a9ab6576ca6842aa13e5c9c31e35a7</id>
<content type='text'>
The idea is to iterate over a (canonicalized) path with forward
slashes by components, i.e. file and directory names. Each name
is then looked at by iterating over components, i.e. everything
between dots.

If a component is an illegal name, like COM1 or AUX, we add an
underscore. If it contains illegal characters, like : or \, we
re-map that character into unicode private use area.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Remove check for OS specific stuff from is_filename_sane</title>
<updated>2024-02-09T14:32:41+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2024-02-09T14:24:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=48b3355c7a887530a9bd17a1ad571e402102dd95'/>
<id>urn:sha1:48b3355c7a887530a9bd17a1ad571e402102dd95</id>
<content type='text'>
Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Add a single, central base64 decoder</title>
<updated>2022-11-17T23:58:13+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2022-11-17T23:57:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=844fdd42f03a633f1dbce5d90b2ecf44698cf8b0'/>
<id>urn:sha1:844fdd42f03a633f1dbce5d90b2ecf44698cf8b0</id>
<content type='text'>
Similar to the hex blob decoder, we need this once for tar and
once for the filemap xattr parser.

Simply add a single, central implementation to libutil, with a
simple unit test, and then use it in both libtar and gensquashfs.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Add a single, central hex blob decoder</title>
<updated>2022-11-17T23:58:07+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2022-11-16T14:41:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=da6eadc840716eb29b0175f39b2790bba166db4a'/>
<id>urn:sha1:da6eadc840716eb29b0175f39b2790bba166db4a</id>
<content type='text'>
Since we need it twice (once for tar, once for the filemap xattr
parser), add a single, central implementation to libutil, add a
unit test for that implementation and then use it in both libtar
and gensquashfs.

Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Fix: update mempool accounting when freeing an object</title>
<updated>2022-11-04T11:13:34+00:00</updated>
<author>
<name>David Oberhollenzer</name>
<email>david.oberhollenzer@sigma-star.at</email>
</author>
<published>2022-10-25T13:58:28+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=b934928842c12cf270106779d20f0f3bc54fa611'/>
<id>urn:sha1:b934928842c12cf270106779d20f0f3bc54fa611</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>Cleanup: move source date epoch code back to libutil</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-05T13:41:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=a412425bca4bb90a7c1b35acac6b185158f3cd4f'/>
<id>urn:sha1:a412425bca4bb90a7c1b35acac6b185158f3cd4f</id>
<content type='text'>
Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Cleanup: move filename_sane &amp; canonicalize_path functions to libutil</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-05T13:34:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=d6e2106e96b6969e045251d972e1adcceb9728df'/>
<id>urn:sha1:d6e2106e96b6969e045251d972e1adcceb9728df</id>
<content type='text'>
Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
<entry>
<title>Cleanup: move mkdir_p from libcommon to libutil</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-02T19:10:49+00:00</published>
<link rel='alternate' type='text/html' href='https://git.infraroot.at/squashfs-tools-ng.git/commit/?id=10ab81a0de97513d82d05945c12bff87b02ede27'/>
<id>urn:sha1:10ab81a0de97513d82d05945c12bff87b02ede27</id>
<content type='text'>
Signed-off-by: David Oberhollenzer &lt;david.oberhollenzer@sigma-star.at&gt;
</content>
</entry>
</feed>
