* Fixed bug that caused segv when <R>eplying to certain messages
authorArt Cancro <ajc@citadel.org>
Mon, 10 Mar 2003 03:40:08 +0000 (03:40 +0000)
committerArt Cancro <ajc@citadel.org>
Mon, 10 Mar 2003 03:40:08 +0000 (03:40 +0000)
citadel/ChangeLog
citadel/citadel_ipc.c

index 8c6ec251481c46453cb81849d59bbeb68d1d435c..14eb342094006022c4358e98b3470c622b2ef321 100644 (file)
@@ -1,4 +1,7 @@
  $Log$
+ Revision 605.11  2003/03/10 03:40:08  ajc
+ * Fixed bug that caused segv when <R>eplying to certain messages
+
  Revision 605.10  2003/03/07 17:39:45  ajc
  * Remove the "modules" directory
 
@@ -4525,3 +4528,4 @@ Sat Jul 11 00:20:48 EDT 1998 Nathan Bryant <bryant@cs.usm.maine.edu>
 
 Fri Jul 10 1998 Art Cancro <ajc@uncensored.citadel.org>
        * Initial CVS import
+
index 5d6d58969b00d6bef93f30bea5d3e9848cb27040..56c3190c73a13a735544db6e88a64cd8efc463b8 100644 (file)
@@ -809,19 +809,16 @@ int CtdlIPCSetRoomAide(CtdlIPC *ipc, const char *username, char *cret)
 int CtdlIPCPostMessage(CtdlIPC *ipc, int flag, const struct ctdlipcmessage *mr, char *cret)
 {
        register int ret;
-       char *aaa;
+       char cmd[SIZ];
 
        if (!cret) return -2;
        if (!mr) return -2;
 
-       aaa = (char *)malloc(strlen(mr->recipient) + strlen(mr->author) + 40);
-       if (!aaa) return -1;
-
-       sprintf(aaa, "ENT0 %d|%s|%d|%d|%s|%s", flag, mr->recipient,
+       snprintf(cmd, sizeof cmd,
+                       "ENT0 %d|%s|%d|%d|%s|%s", flag, mr->recipient,
                        mr->anonymous, mr->type, mr->subject, mr->author);
-       ret = CtdlIPCGenericCommand(ipc, aaa, mr->text, strlen(mr->text), NULL,
+       ret = CtdlIPCGenericCommand(ipc, cmd, mr->text, strlen(mr->text), NULL,
                        NULL, cret);
-       free(aaa);
        return ret;
 }