diff options
author | John Mark Bell <jmb@netsurf-browser.org> | 2009-02-10 18:35:56 +0000 |
---|---|---|
committer | John Mark Bell <jmb@netsurf-browser.org> | 2009-02-10 18:35:56 +0000 |
commit | 72b8a67660ca199b31d1e771e7cb5206697407b6 (patch) | |
tree | c653c9c184d5635ba8d9c17f085c3543d3b4e76e /css/css.c | |
parent | 876c92e58ea75698a9e1f83dd9243e6928c9fa41 (diff) | |
download | netsurf-72b8a67660ca199b31d1e771e7cb5206697407b6.tar.gz netsurf-72b8a67660ca199b31d1e771e7cb5206697407b6.tar.bz2 |
Ensure URLs are normalized prior to fetching.
Squash memory leaks.
svn path=/trunk/netsurf/; revision=6411
Diffstat (limited to 'css/css.c')
-rw-r--r-- | css/css.c | 16 |
1 files changed, 15 insertions, 1 deletions
@@ -878,16 +878,30 @@ void css_atimport(struct content *c, struct css_node *node) return; } + /* Make URL absolute */ res = url_join(url, c->url, &url1); if (res != URL_FUNC_OK) { free(url); return; } + /* Destroy raw url data */ + free(url); + + /* URL must be normalized */ + res = url_normalize(url1, &url); + if (res != URL_FUNC_OK) { + free(url1); + return; + } + + /* Destroy non-normalized data */ + free(url1); + /* start the fetch */ c->data.css.import_count++; i = c->data.css.import_count - 1; - c->data.css.import_content[i] = fetchcache(url1, + c->data.css.import_content[i] = fetchcache(url, css_atimport_callback, (intptr_t) c, i, c->width, c->height, true, 0, 0, false, false); if (c->data.css.import_content[i]) { |