diff options
author | Michael Drake <tlsa@netsurf-browser.org> | 2013-02-22 23:08:39 +0000 |
---|---|---|
committer | Michael Drake <tlsa@netsurf-browser.org> | 2013-02-22 23:08:39 +0000 |
commit | 3cc90f2f3022dd4b416c704e53b69a629fa6ff18 (patch) | |
tree | 6661f6e22c3fc8a40dcbcdb075e1a8b119124d29 | |
parent | f72da52cfc92555b295520ced55213d43df7c897 (diff) | |
download | netsurf-3cc90f2f3022dd4b416c704e53b69a629fa6ff18.tar.gz netsurf-3cc90f2f3022dd4b416c704e53b69a629fa6ff18.tar.bz2 |
Fix trying to free a load of stuff dereferenced from a NULL ptr.
-rw-r--r-- | render/imagemap.c | 24 |
1 files changed, 13 insertions, 11 deletions
diff --git a/render/imagemap.c b/render/imagemap.c index c41b86d0b..379d6583d 100644 --- a/render/imagemap.c +++ b/render/imagemap.c @@ -607,18 +607,20 @@ imagemap_addtolist(dom_node *n, nsurl *base_url, bad_out: ret = false; ok_free_map_out: - if (new_map->url != NULL) - nsurl_unref(new_map->url); - if (new_map->type == IMAGEMAP_POLY && - new_map->bounds.poly.ycoords != NULL) - free(new_map->bounds.poly.ycoords); - if (new_map->type == IMAGEMAP_POLY && - new_map->bounds.poly.xcoords != NULL) - free(new_map->bounds.poly.xcoords); - if (new_map->target != NULL) - free(new_map->target); - if (new_map != NULL) + if (new_map != NULL) { + if (new_map->url != NULL) + nsurl_unref(new_map->url); + if (new_map->type == IMAGEMAP_POLY && + new_map->bounds.poly.ycoords != NULL) + free(new_map->bounds.poly.ycoords); + if (new_map->type == IMAGEMAP_POLY && + new_map->bounds.poly.xcoords != NULL) + free(new_map->bounds.poly.xcoords); + if (new_map->target != NULL) + free(new_map->target); + free(new_map); + } ok_out: if (href != NULL) dom_string_unref(href); |