Re: [CODE] Say command crashes goodies tarball?

From: Adam Scriven (scriven@lore.com)
Date: 01/25/03


On Fri, Jan 24, 2003 at 09:39:18PM -0800, Daniel A. Koepke wrote:
> On Sat, 25 Jan 2003, Mark Garringer wrote:
> > >#0  0x08049c12 in do_say (ch=Cannot access memory at address 0xbfff0082
> > >) at act.comm.c:142
> > >Cannot access memory at address 0xbfff007a
>
> ch is pointing to an invalid address.  However, it's correct here:
>
> >   if (!IS_NPC(ch))
> >     garble_text(ibuf, GET_SKILL(ch, SPEAKING(ch)), SPEAKING(ch));
>
> as IS_NPC(ch) would've caused the crash otherwise.  Since 'ch' is never
> directly modified after this point, this implies a buffer overflow,
> possibly within garble_text().

Yeah, I've been playing around, getting various variables and whatnot to
display, and it seems that garble_text is where the problems are, but I'm
not sure why yet.

However!
It seems that if I set my language to Dwarven, it doesn't crash.
In fact, it seems to work quite well, as long as I speak dwarvish.
Any speaking of Common, Elvish or Gnomish crash, but that makes sense,
because Dwarvish is the only special case in garble_text.

Interestingly enough, Puff can talk OK it would seem, but it's always
in an unfamiliar tongue, and it's not garbled.

Anyway, just an update to anyone who's hacking through this.
Hopefully one of us will come up with the answer.
Adam

--
   +---------------------------------------------------------------+
   | FAQ: http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html |
   | Archives: http://post.queensu.ca/listserv/wwwarch/circle.html |
   | Newbie List:  http://groups.yahoo.com/group/circle-newbies/   |
   +---------------------------------------------------------------+



This archive was generated by hypermail 2b30 : 06/26/03 PDT