Fixed crash while processing page with invalid `style' attribute.

This commit is contained in:
Ivanov Anton 2010-10-08 13:39:36 +02:00 committed by Giuseppe Scrivano
parent 62864cee6e
commit 62aab82ead
2 changed files with 21 additions and 2 deletions

View File

@ -1,3 +1,7 @@
2010-10-08 Ivanov Anton <x86mail@gmail.com> (tiny change)
* src/html-url.c (check_style_attr): Skip quotes when they are present.
2010-10-06 Giuseppe Scrivano <gscrivano@gnu.org>
* main.c (main): Remove unused variable `status'.

View File

@ -364,12 +364,27 @@ static void
check_style_attr (struct taginfo *tag, struct map_context *ctx)
{
int attrind;
int raw_start;
int raw_len;
char *style = find_attr (tag, "style", &attrind);
if (!style)
return;
/* raw pos and raw size include the quotes, hence the +1 -2 */
get_urls_css (ctx, ATTR_POS(tag,attrind,ctx)+1, ATTR_SIZE(tag,attrind)-2);
/* raw pos and raw size include the quotes, skip them when they are
present. */
raw_start = ATTR_POS (tag, attrind, ctx);
raw_len = ATTR_SIZE (tag, attrind);
if( *(char *)(ctx->text + raw_start) == '\''
|| *(char *)(ctx->text + raw_start) == '"')
{
raw_start += 1;
raw_len -= 2;
}
if(raw_len <= 0)
return;
get_urls_css (ctx, raw_start, raw_len);
}
/* All the tag_* functions are called from collect_tags_mapper, as