summaryrefslogtreecommitdiff
path: root/render/imagemap.c
diff options
context:
space:
mode:
authorMichael Drake <tlsa@netsurf-browser.org>2013-02-22 23:08:39 +0000
committerMichael Drake <tlsa@netsurf-browser.org>2013-02-22 23:08:39 +0000
commit3cc90f2f3022dd4b416c704e53b69a629fa6ff18 (patch)
tree6661f6e22c3fc8a40dcbcdb075e1a8b119124d29 /render/imagemap.c
parentf72da52cfc92555b295520ced55213d43df7c897 (diff)
downloadnetsurf-3cc90f2f3022dd4b416c704e53b69a629fa6ff18.tar.gz
netsurf-3cc90f2f3022dd4b416c704e53b69a629fa6ff18.tar.bz2
Fix trying to free a load of stuff dereferenced from a NULL ptr.
Diffstat (limited to 'render/imagemap.c')
-rw-r--r--render/imagemap.c24
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);