dictDeleteDict() frees both dict->head and dict, but dict->head isn't allocated separately so it must not be freed separately either.
Created attachment 5379 [details] [review] Patch
It looks to me like you're referencing the value of node->next after you've free'd node (that's bad). I think we need to do something like this instead: void dictDeleteDict( Dict *dict ) { DictNode *node, *next; for( node = dict->head.next; node != &dict->head; node = next ) { next = node->next; memFree( node ); } memFree( dict ); }
Whoops, you are right. That's another issue I didn't notice :)
Fixed in CVS.
Mass version move, cvs -> git
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.