<feed xmlns='http://www.w3.org/2005/Atom'>
<title>libplist/libcnary, branch master</title>
<subtitle>Library to handle Apple Property List format files in binary or XML</subtitle>
<link rel='alternate' type='text/html' href='https://cgit.sukimashita.com/libplist.git/'/>
<entry>
<title>libcnary: Fix leak on error in node_copy_deep()</title>
<updated>2026-02-12T23:48:34+00:00</updated>
<author>
<name>Nikias Bassen</name>
</author>
<published>2026-02-12T23:48:34+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.sukimashita.com/libplist.git/commit/?id=70fd355f94f41bd53d236c9365ed4f888a8818eb'/>
<id>70fd355f94f41bd53d236c9365ed4f888a8818eb</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>libcnary: Fix node_detach to fully clear parent relationship</title>
<updated>2026-02-08T02:54:06+00:00</updated>
<author>
<name>Nikias Bassen</name>
</author>
<published>2026-02-08T02:54:06+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.sukimashita.com/libplist.git/commit/?id=714ef4f95652bc5dde2bc1a461cac8c3a89a61c9'/>
<id>714ef4f95652bc5dde2bc1a461cac8c3a89a61c9</id>
<content type='text'>
Ensure node_detach() clears child-&gt;parent after removal and
handles missing children lists safely. This makes detached
nodes reusable and allows correct rollback when reinserting
nodes after failed inserts (e.g. depth-limit failures).

Without this, detached nodes could remain logically parented,
causing inconsistent state and preventing reinsertion.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Ensure node_detach() clears child-&gt;parent after removal and
handles missing children lists safely. This makes detached
nodes reusable and allows correct rollback when reinserting
nodes after failed inserts (e.g. depth-limit failures).

Without this, detached nodes could remain logically parented,
causing inconsistent state and preventing reinsertion.
</pre>
</div>
</content>
</entry>
<entry>
<title>libcnary: Define error codes and add cycle, depth, and parent guards</title>
<updated>2026-02-06T21:08:39+00:00</updated>
<author>
<name>Nikias Bassen</name>
</author>
<published>2026-02-06T21:08:39+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.sukimashita.com/libplist.git/commit/?id=1df039994ff2368bc64ea4bc38d9261e6153437c'/>
<id>1df039994ff2368bc64ea4bc38d9261e6153437c</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>libcnary: Updated typedefs of node_t and node_list_t to contain pointer</title>
<updated>2023-02-06T17:28:28+00:00</updated>
<author>
<name>Nikias Bassen</name>
</author>
<published>2023-02-06T17:28:28+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.sukimashita.com/libplist.git/commit/?id=d3908006349f38bcfc0151daebd98b6873a2dbfc'/>
<id>d3908006349f38bcfc0151daebd98b6873a2dbfc</id>
<content type='text'>
This makes the code more readable. Obviously all the code that uses it
is also updated.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This makes the code more readable. Obviously all the code that uses it
is also updated.
</pre>
</div>
</content>
</entry>
<entry>
<title>Replace malloc + memset with calloc where appropriate</title>
<updated>2021-01-25T15:20:57+00:00</updated>
<author>
<name>Rosen Penev</name>
</author>
<published>2020-12-21T22:24:11+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.sukimashita.com/libplist.git/commit/?id=af9b59e6a1a36997d7017f4841f4a934ca1ade98'/>
<id>af9b59e6a1a36997d7017f4841f4a934ca1ade98</id>
<content type='text'>
calloc is faster for big allocations. It's also simpler.

Signed-off-by: Rosen Penev &lt;rosenp@gmail.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
calloc is faster for big allocations. It's also simpler.

Signed-off-by: Rosen Penev &lt;rosenp@gmail.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Unfold automake variables into multiple lines for maintainability</title>
<updated>2020-06-09T16:19:07+00:00</updated>
<author>
<name>Martin Szulecki</name>
</author>
<published>2020-06-09T16:19:07+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.sukimashita.com/libplist.git/commit/?id=c14849987d893999c03f165b49257e108d07bad3'/>
<id>c14849987d893999c03f165b49257e108d07bad3</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove whitespace errors from all files</title>
<updated>2020-06-08T20:47:19+00:00</updated>
<author>
<name>Martin Szulecki</name>
</author>
<published>2020-06-08T20:47:19+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.sukimashita.com/libplist.git/commit/?id=5ca510afde8bc59c9682f5f1ae11b1ed74d1acdd'/>
<id>5ca510afde8bc59c9682f5f1ae11b1ed74d1acdd</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>libcnary: [BUGFIX] Set list-&gt;end to NULL when removing last and only element from list</title>
<updated>2019-09-02T23:21:05+00:00</updated>
<author>
<name>Nikias Bassen</name>
</author>
<published>2019-09-02T23:16:03+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.sukimashita.com/libplist.git/commit/?id=6a53de92e2b5029ee293c79d481ff5fd9528f8c3'/>
<id>6a53de92e2b5029ee293c79d481ff5fd9528f8c3</id>
<content type='text'>
This prevents a UaF in node_list_add. The issue became visible after removing
the last (and only) item from a PLIST_DICT or PLIST_ARRAY node, and then
adding a new item - the item will not make it into the actual dictionary or
array because the list-&gt;end pointer points to invalid memory, effectively
causing memory corruption.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This prevents a UaF in node_list_add. The issue became visible after removing
the last (and only) item from a PLIST_DICT or PLIST_ARRAY node, and then
adding a new item - the item will not make it into the actual dictionary or
array because the list-&gt;end pointer points to invalid memory, effectively
causing memory corruption.
</pre>
</div>
</content>
</entry>
<entry>
<title>libcnary: Remove list.c/list.h and just do everything in node_list.c</title>
<updated>2019-01-21T04:11:03+00:00</updated>
<author>
<name>Nikias Bassen</name>
</author>
<published>2019-01-21T04:11:03+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.sukimashita.com/libplist.git/commit/?id=bec850fe399639f3b8582a39386216970dea15ed'/>
<id>bec850fe399639f3b8582a39386216970dea15ed</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Remove node_iterator and operate on node list directly to improve memory usage</title>
<updated>2018-12-10T01:22:15+00:00</updated>
<author>
<name>Nikias Bassen</name>
</author>
<published>2018-12-10T01:20:24+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.sukimashita.com/libplist.git/commit/?id=4de329327ce4aa175e8496d1bff8604bffb6c574'/>
<id>4de329327ce4aa175e8496d1bff8604bffb6c574</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
</feed>
