Dnia 16-04-2008, śro o godzinie 00:49 +0000, Hin-Tak Leung pisze:
--- On Tue, 15/4/08, Tomasz Jezierski - Tefnet developers@tefnet.pl wrote:
<snipped> > While reading this patch I found another bug: > > + if (i == > sizeof(char_refs)/sizeof(char_refs[0])) > + { > + FIXME("character entity %s not > found\n", > debugstr_wn(start + 1, p - start - 1)); > + continue; > + } > > I think *start should be changed to another char in that > case, because > if we will not change it, we will fall into infinite loop > like it > happens with help file in GPSTRACK from bug #6801.
I have experience the infinite loop myself, but I haven't quite checked where it is - it happens if the table is incomplete and the code encounters an html entity that's not mentioned in the table. I encountered it when I tried to view some help pages containing german ¨aute; 's in another help file I happened to have around. (gpstrack is about french accented characters.)
If you won't find entity in table and change ampersand to another char, you won't get infinite loop, but I'm not sure what will happen if you have & in help, that might trigger loop too. Do you know any free software in which I can craft such chm files?