summaryrefslogtreecommitdiff
path: root/css
diff options
context:
space:
mode:
authorJohn Mark Bell <jmb@netsurf-browser.org>2006-06-28 15:38:46 +0000
committerJohn Mark Bell <jmb@netsurf-browser.org>2006-06-28 15:38:46 +0000
commit4e6974b523df4889d7ed2b4f2ecc1ad01d8db3cd (patch)
treed99bf418704d1710773dd0d5233df384c0c55117 /css
parentea7867b927d206f71b7714b69f2bde52bc002174 (diff)
downloadnetsurf-4e6974b523df4889d7ed2b4f2ecc1ad01d8db3cd.tar.gz
netsurf-4e6974b523df4889d7ed2b4f2ecc1ad01d8db3cd.tar.bz2
Fix background: parsing & lose potential memory leak
svn path=/trunk/netsurf/; revision=2660
Diffstat (limited to 'css')
-rw-r--r--css/ruleset.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/css/ruleset.c b/css/ruleset.c
index dd0622aea..cac548514 100644
--- a/css/ruleset.c
+++ b/css/ruleset.c
@@ -848,17 +848,18 @@ void parse_background(struct css_style * const s,
/* background-image */
if (!css_background_image_parse(v, &bi2,
&bi_uri))
- return;
+ goto error;
bi = bi2;
v = v->next;
break;
case CSS_NODE_DIMENSION:
+ case CSS_NODE_NUMBER:
case CSS_NODE_PERCENTAGE:
/* background-position */
if (!css_background_position_parse(&v,
&horz2, &vert2))
- return;
+ goto error;
horz = horz2;
vert = vert2;
break;
@@ -913,7 +914,7 @@ void parse_background(struct css_style * const s,
/* fall through */
default:
/* parsing failed */
- return;
+ goto error;
}
}
@@ -926,6 +927,11 @@ void parse_background(struct css_style * const s,
s->background_attachment = ba;
s->background_position.horz = horz;
s->background_position.vert = vert;
+
+ return;
+
+error:
+ free(bi_uri);
}