]> gitweb.michael.orlitzky.com - libsvgtiny.git/commit
src/svgtiny.c: cleanup dom nodes and select ctx after svgtiny_parse()
authorMichael Orlitzky <michael@orlitzky.com>
Sat, 19 Oct 2024 23:16:20 +0000 (19:16 -0400)
committerMichael Orlitzky <michael@orlitzky.com>
Sun, 20 Oct 2024 21:46:58 +0000 (17:46 -0400)
commit3c69533a4e7e109389b9f74649516a25eeb8ee11
tree7749060609e3046c64819c5c8b83b5cca21fa058
parentb6c049af93f94013073ff1d444e9a3fd7bd61013
src/svgtiny.c: cleanup dom nodes and select ctx after svgtiny_parse()

The svgtiny_parse() function has a "cleanup:" label at the end
that... cleans up, and then returns whatever result is set. Looking
back through this function, though, we see that none of "svg",
"document", or "state.select_ctx" are cleaned up separately in the two
places where we jump to the "cleanup:" label. Thus those resources may
be leaked.

To prevent that, we just have to move the "cleanup:" label up a bit,
so that it includes the clean-up for "svg", "document", and
"state.select_ctx". We also add a new guard that prevents us from
clobbering a real error code with an error from the context destructor
in the cleanup routine.
src/svgtiny.c