- From: Rick Kwan <kenobi@lightsaber.com>
- Date: Fri, 25 Jun 1999 08:05:36 -0700 (PDT)
- To: Raffaele Sena <raff@nuvomedia.com>
- cc: libwww <www-lib@w3.org>
Raffaele,
I'm able to make the browser crash on a certain number of
pages with poorly formed links. (nested links, extra </a>
with no matching <a>.)
For well-formed pages with anchors, I get *_beginAnchor on a
stack that looks like
LMHText_beginAnchor() at GridText.c:765
HTextImp_foundLink() at HText.c:107
HTML_start_element() at HTML.c:204
start_element() at SGML.c:203
SGML_write() at SGML.c:290
...et cetera..
(Line numbers are from my 5.2.6 code.)
For pages where the first link has already gone by,
This is a result of my registering LMHText_beginAnchor() as a
callback. Possibly, it needs to be broken in two parts, which
* capture link info, remaining in the callback.
* deal with presentation (in this case, assign a link number),
invoked from with LMHText_beginElement().
A simplistic fix to go inside LMText_endAnchor() in
GridText.c...
*** 787,792 ****
--- 787,794 ----
{
TextAnchor * a = text->last_anchor;
char marker[100];
+ if (!a) /* *_beginAnchor not yet called */
+ return;
if (a->number && display_anchors) { /* If it goes somewhere */
sprintf(marker, end_reference, a->number);
HText_appendText(text, marker);
This fixes the above crash cases, and tends to convert extra
</a> into repeats of last link number.
--Rick Kwan
rick.kwan@lightsaber.com
On Thu, 24 Jun 1999, Raffaele Sena wrote:
> > >The diffs below allow the linemode browser to compile and run
> > >with libwww-5.2.6 and above. The major enhancement is the use of
> > >callbacks registered to the HText interface.
> >
> > Cool - committed - see
> >
> > http://dev.w3.org/cgi-bin/cvsweb/libwww/LineMode/src/
> >
>
> I did a simple fix to prevent a crash on pages with anchors
> (*_endAnchor was called but *_beginAnchor wasn't) see:
>
> http://dev.w3.org/cgi-bin/cvsweb/libwww/LineMode/src/GridText.c
>
> -- Raffaele
>
Received on Friday, 25 June 1999 10:39:16 UTC