]> granicus.if.org Git - graphviz/commit
Fixed 3 potential memory leaks in QuadTree.c
authorErwin Janssen <erwinjanssen@outlook.com>
Wed, 7 Dec 2016 13:56:39 +0000 (14:56 +0100)
committerErwin Janssen <erwinjanssen@outlook.com>
Wed, 7 Dec 2016 13:56:39 +0000 (14:56 +0100)
commit83c25e485a2cb24753ff429dbe80dcd462881798
tree7dfe7abd806ee0b023e2209b30d1ce575aaad1d7
parent5236d9d5009e78aa38c02a98a59e821b36ae9037
Fixed 3 potential memory leaks in QuadTree.c

In the function `QuadTree_new_from_point_list` in lib/sparse/QuadTree.c,
memory is allocated for tree variables. The check that follows returns
NULL if one of the pointers is NULL (indicating memory allocation
failure). However, it is possible that memory allocation succeeds for one
or two variables, but fails for the third. If this happens, the functions
returns NULL, but the allocated memory isn't freed.
The fix is to free all three pointers in case of a failure. If memory is
allocated it is freed. If the pointer is NULL, free can still safely be
called.
lib/sparse/QuadTree.c