Module: wine Branch: master Commit: b72ac222ea8b59eae17efbdff57cbfd82e3badd6 URL: http://source.winehq.org/git/wine.git/?a=commit;h=b72ac222ea8b59eae17efbdff5...
Author: Erich Hoover ehoover@mines.edu Date: Mon Jun 25 08:54:47 2012 -0600
hhctrl.ocx: Keep parsing failure from causing a segmentation fault.
---
dlls/hhctrl.ocx/index.c | 10 +++++++--- 1 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/dlls/hhctrl.ocx/index.c b/dlls/hhctrl.ocx/index.c index 3cf69de..2cc79a6 100644 --- a/dlls/hhctrl.ocx/index.c +++ b/dlls/hhctrl.ocx/index.c @@ -191,6 +191,8 @@ static IndexItem *parse_li(HHInfo *info, stream_t *stream)
strbuf_zero(&node); } + if(!ret) + FIXME("Failed to parse <li> tag!\n");
strbuf_free(&node); strbuf_free(&node_name); @@ -227,9 +229,11 @@ static void parse_hhindex(HHInfo *info, IStream *str, IndexItem *item)
if(!strcasecmp(node_name.buf, "li")) { item->next = parse_li(info, &stream); - item->next->merge = item->merge; - item = item->next; - item->indentLevel = indent_level; + if(item->next) { + item->next->merge = item->merge; + item = item->next; + item->indentLevel = indent_level; + } }else if(!strcasecmp(node_name.buf, "ul")) { indent_level++; }else if(!strcasecmp(node_name.buf, "/ul")) {