Oops, socials bug.

From: George Greer (greerga@circlemud.org)
Date: 12/17/99

>From: "Bob Castillo" <castillo7@hotmail.com>
>To: bugs@circlemud.org
>Subject: minor bug
>Date: Tue, 14 Dec 1999 23:22:30 PST
>I just discovered a crashing bug in my circle mud bpl 12, but i see the same
>bug in bpl 16...
>in comm.c function "perform_act"
>the function initialize *i to NULL
>but, if a function/procedure call "act" with a wrong code like $h, this will
>crash the mud... atlease, you will have a log of that:
>   default:
>        log("SYSERR: Illegal $-code to act(): %c", *orig);
>        log("SYSERR: %s", orig);
>        break;
>but, just after that you do:
>    while ((*buf = *(i++)))
>        buf++;
>and "i" is still equal to NULL !!!
>I fixed the bug by
>     if (i)
>        while ((*buf = *(i++)))
>          buf++
>This bug is nasty, if you're MUD is using aedit (social editor), and you
>make a typo $h instead of $n ...
>         Castillo.

The fix I'm using is:

Index: src/comm.c

RCS file: /home/circledb/.cvs/circle/src/comm.c,v
retrieving revision 1.77
diff -u -p -r1.77 comm.c
--- src/comm.c  1999/08/02 00:30:33     1.77
+++ src/comm.c  1999/12/17 16:19:43
@@ -2174,6 +2174,7 @@ void perform_act(const char *orig, struc
        log("SYSERR: Illegal $-code to act(): %c", *orig);
        log("SYSERR: %s", orig);
+       i = "";
       while ((*buf = *(i++)))

Since it maintains the case-sets-i precendent.

And on the previous message I did _not_ mean the logos were cheesy but that
my script to create the gallery was cheesy.  Just in case people

George Greer            | The CircleMUD FAQ
greerga@circlemud.org   | http://developer.circlemud.org/docs/FAQ/

     | Ensure that you have read the CircleMUD Mailing List FAQ:  |
     |  http://qsilver.queensu.ca/~fletchra/Circle/list-faq.html  |

This archive was generated by hypermail 2b30 : 12/15/00 PST