Here's two patches, one for 75p3 and one for 1.0c16.
The patches are also available from ftp.bitchx.org now(I think, they
weren't there when I first checked).
Anyway, /invite nickname #%s%s%s%s%s%s%s%s%s%s%s%s%s%s%s will cause BitchX
to segfault. 

Instructions:

cd BitchX/source
patch < /path/to/75p3-format.patch

It should apply cleanly.  Then recompile bx and restart your client.

--- parse.c.orig        Fri Feb 26 11:01:55 1999
+++ parse.c     Mon Jul  3 05:17:14 2000
@@ -1030,7 +1030,7 @@
                                bitchsay("Press Ctrl-K to join %s (%s)", 
invite_channel, ArgList[2]);
                        else
                                bitchsay("Press Ctrl-K to join %s", invite_channel);
-                       logmsg(LOG_INVITE, from, 0, invite_channel);
+                       logmsg(LOG_INVITE, from, 0, "%s", invite_channel);
                }
                if (!(chan = lookup_channel(invite_channel, from_server, 0)))
                        if ((w_chan = check_whowas_chan_buffer(invite_channel, 0)))
@@ -1097,7 +1097,7 @@
                        fudge_nickname(from_server);
                if (get_int_var(AUTO_RECONNECT_VAR))
                        servercmd (NULL, sc, empty_string, NULL);
-               logmsg(LOG_KILL, from, 0, ArgList[1]?ArgList[1]:"(No Reason)");
+               logmsg(LOG_KILL, from, 0, "%s", ArgList[1]?ArgList[1]:"(No Reason)");
        }
        update_all_status(current_window, NULL, 0);
 }


Instructions:

cd BitchX/source
patch < /path/to/1.0c16-format.patch

#It should apply cleanly.  Then recompile bx and restart your client.

--- parse.c.orig        Mon Jul  3 05:20:51 2000
+++ parse.c     Mon Jul  3 05:21:15 2000
@@ -1150,7 +1150,7 @@
                                else
                                        bitchsay("Press %s to join %s", s, 
invite_channel);
                        }
-                       logmsg(LOG_INVITE, from, 0, invite_channel);
+                       logmsg(LOG_INVITE, from, 0, "%s", invite_channel);
                }
                if (!(chan = lookup_channel(invite_channel, from_server, 0)))
                        check_auto_join(from_server, from, invite_channel, ArgList[2]);
@@ -1211,7 +1211,7 @@
                        fudge_nickname(from_server, 1);
                if (get_int_var(AUTO_RECONNECT_VAR))
                        servercmd (NULL, sc, empty_string, NULL);
-               logmsg(LOG_KILL, from, 0, ArgList[1]?ArgList[1]:"(No Reason)");
+               logmsg(LOG_KILL, from, 0, "%s", ArgList[1]?ArgList[1]:"(No Reason)");
        }
        update_all_status(current_window, NULL, 0);
 }

-- 
Bryan Paxton

"How should I know if it works? That's what beta testers are for. I
          only coded it."
 -- Linus Torvalds.

Public key can be found at http://speedbros.org/Bryan_Paxton.asc

Reply via email to