diff -Nru squidGuard-1.4.orig/configure.in squidGuard-1.4/configure.in --- squidGuard-1.4.orig/configure.in 2009-04-26 12:28:49.000000000 +0000 +++ squidGuard-1.4/configure.in 2009-04-26 12:29:35.000000000 +0000 @@ -421,7 +421,7 @@ AC_CHECK_FUNCS(regexec, , AC_MSG_ERROR([No regexec library function.])) AC_CHECK_FUNCS(strdup, , AC_MSG_ERROR([No strdup library function.])) AC_CHECK_FUNCS(strerror, , AC_MSG_ERROR([No strerror library function.])) -AC_CHECK_FUNCS(vsprintf, , AC_MSG_ERROR([No vsprintf library function.])) +AC_CHECK_FUNCS(vsnprintf, , AC_MSG_ERROR([No vsnprintf library function.])) AC_CHECK_FUNCS(sigaction) AC_CHECK_FUNCS(signal) diff -Nru squidGuard-1.4.orig/src/sgLog.c squidGuard-1.4/src/sgLog.c --- squidGuard-1.4.orig/src/sgLog.c 2007-11-16 16:58:32.000000000 +0000 +++ squidGuard-1.4/src/sgLog.c 2009-04-26 12:31:40.000000000 +0000 @@ -55,7 +55,7 @@ char msg[MAX_BUF]; va_list ap; VA_START(ap, format); - if(vsprintf(msg, format, ap) > (MAX_BUF - 1)) + if(vsnprintf(msg, MAX_BUF, format, ap) > (MAX_BUF - 1)) fprintf(stderr,"overflow in vsprintf (sgLog): %s",strerror(errno)); va_end(ap); date = niso(0); @@ -87,8 +87,8 @@ char msg[MAX_BUF]; va_list ap; VA_START(ap, format); - if(vsprintf(msg, format, ap) > (MAX_BUF - 1)) - sgLogFatalError("overflow in vsprintf (sgLogError): %s",strerror(errno)); + if(vsnprintf(msg, MAX_BUF, format, ap) > (MAX_BUF - 1)) + fprintf(stderr,"overflow in vsprintf (sgLogError): %s",strerror(errno)); va_end(ap); sgLog(globalErrorLog,"%s",msg); } @@ -104,7 +104,7 @@ char msg[MAX_BUF]; va_list ap; VA_START(ap, format); - if(vsprintf(msg, format, ap) > (MAX_BUF - 1)) + if(vsnprintf(msg, MAX_BUF, format, ap) > (MAX_BUF - 1)) return; va_end(ap); sgLog(globalErrorLog,"%s",msg);