mirror of
https://github.com/mirror/wget.git
synced 2025-01-01 07:50:11 +08:00
Fixed crash while processing page with invalid `style' attribute.
This commit is contained in:
parent
62864cee6e
commit
62aab82ead
@ -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>
|
2010-10-06 Giuseppe Scrivano <gscrivano@gnu.org>
|
||||||
|
|
||||||
* main.c (main): Remove unused variable `status'.
|
* main.c (main): Remove unused variable `status'.
|
||||||
|
@ -364,12 +364,27 @@ static void
|
|||||||
check_style_attr (struct taginfo *tag, struct map_context *ctx)
|
check_style_attr (struct taginfo *tag, struct map_context *ctx)
|
||||||
{
|
{
|
||||||
int attrind;
|
int attrind;
|
||||||
|
int raw_start;
|
||||||
|
int raw_len;
|
||||||
char *style = find_attr (tag, "style", &attrind);
|
char *style = find_attr (tag, "style", &attrind);
|
||||||
if (!style)
|
if (!style)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
/* raw pos and raw size include the quotes, hence the +1 -2 */
|
/* raw pos and raw size include the quotes, skip them when they are
|
||||||
get_urls_css (ctx, ATTR_POS(tag,attrind,ctx)+1, ATTR_SIZE(tag,attrind)-2);
|
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
|
/* All the tag_* functions are called from collect_tags_mapper, as
|
||||||
|
Loading…
Reference in New Issue
Block a user