On Mon, 24 May 2010 10:02:47 +0200 Premysl Hruby <dfe...@gmail.com> wrote:
> Hi, > > in sic, if you use cmd ":m something" it will use null pointer as %s > in printf (in function privmsg), which is obviously bad idea > (segfault or, as in case of glibc it send unnecessary string "(null)". I haven't come across a printf that segfaults when passed a null pointer for %s. All of the BSDs handle it, along with uClibc and dietlibc, and I seem to recall that Solaris/SunOS does as well. > For fix, see patch: > > diff -r 503b48b13a77 sic.c > --- a/sic.c Tue Jul 29 19:22:08 2008 +0100 > +++ b/sic.c Mon May 24 09:58:32 2010 +0200 > @@ -77,8 +77,9 @@ > else if(!strncmp(msg + 1, "l ", 2)) > snprintf(bufout, sizeof bufout, "PART %s :sic - 250 > LOC are too much!\r\n", msg + 3); else if(!strncmp(msg + 1, "m ", 2)) > { > - if((p = strchr(msg + 3, ' '))) > - *(p++) = 0; > + if (!(p = strchr(msg + 3, ' '))) > + return; > + *(p++) = 0; > privmsg(msg + 3, p); > return; > } What version of sic are you using? The current version doesn't have that code anymore. -- Kris Maglione FAITH, n. Belief without evidence in what is told by one who speaks without knowledge, of things without parallel. --Ambrose Bierce