<feed xmlns='http://www.w3.org/2005/Atom'>
<title>libplist/libcnary/node_list.c, branch 2.8.0</title>
<subtitle>Library to handle Apple Property List format files in binary or XML</subtitle>
<link rel='alternate' type='text/html' href='https://cgit.libimobiledevice.org/libplist.git/'/>
<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.libimobiledevice.org/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.libimobiledevice.org/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.libimobiledevice.org/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>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.libimobiledevice.org/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.libimobiledevice.org/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.libimobiledevice.org/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>libcnary: Remove unused 'node' parameter from node_list_create()</title>
<updated>2017-03-28T00:51:25+00:00</updated>
<author>
<name>Nikias Bassen</name>
</author>
<published>2017-03-28T00:51:25+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.libimobiledevice.org/libplist.git/commit/?id=1406766a0c75f6a861afb73f1606036f2da79bd5'/>
<id>1406766a0c75f6a861afb73f1606036f2da79bd5</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>Rename "index" variable as it shadows global declaration on older systems</title>
<updated>2014-05-20T15:46:06+00:00</updated>
<author>
<name>Martin Szulecki</name>
</author>
<published>2014-05-20T15:46:06+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.libimobiledevice.org/libplist.git/commit/?id=993f65b3bda53e2b22ee9e94efd11cbddd7b73cb'/>
<id>993f65b3bda53e2b22ee9e94efd11cbddd7b73cb</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>libcnary: return removed/detached index in node_list_remove/node_detach</title>
<updated>2012-04-23T23:10:46+00:00</updated>
<author>
<name>Nikias Bassen</name>
</author>
<published>2012-04-23T23:10:46+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.libimobiledevice.org/libplist.git/commit/?id=6697e4927883843e1bd537d778fc58bebd9a0b4e'/>
<id>6697e4927883843e1bd537d778fc58bebd9a0b4e</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>node_list: Fix memory corruption</title>
<updated>2012-01-11T14:26:44+00:00</updated>
<author>
<name>Nikias Bassen</name>
</author>
<published>2012-01-11T14:26:44+00:00</published>
<link rel='alternate' type='text/html' href='https://cgit.libimobiledevice.org/libplist.git/commit/?id=ed4c858c5f37113f498fe6e85366ae38a0f29a9d'/>
<id>ed4c858c5f37113f498fe6e85366ae38a0f29a9d</id>
<content type='text'>
The corruption occured if you removed the last node from the list
and later add a new node to the list.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The corruption occured if you removed the last node from the list
and later add a new node to the list.
</pre>
</div>
</content>
</entry>
</feed>
