From: Cruicky Date: Sun, 27 Jul 2008 00:05:34 +0000 (+0100) Subject: Fix buffer overflow X-Git-Url: https://jfr.im/git/irc/quakenet/newserv.git/commitdiff_plain/3f913369f2b37b0b68277ba2a5a8356ba648cad4 Fix buffer overflow --- diff --git a/proxyscan/proxyscandb.c b/proxyscan/proxyscandb.c index 484445d2..38397aa5 100644 --- a/proxyscan/proxyscandb.c +++ b/proxyscan/proxyscandb.c @@ -122,8 +122,8 @@ int scantodm(int scannum) { */ void loggline(cachehost *chp, patricia_node_t *node) { - char reasonlist[100]; - char reasonesc[200 + 1]; /* reasonlist*2+1 */ + char reasonlist[200]; + char reasonesc[400 + 1]; /* reasonlist*2+1 */ int reasonmask=0; int reasonpos=0; foundproxy *fpp; @@ -136,6 +136,9 @@ void loggline(cachehost *chp, patricia_node_t *node) { reasonlist[0]='\0'; reasonmask=0; for (fpp=chp->proxies;fpp;fpp=fpp->next) { + if ((reasonpos + 20) > sizeof(reasonlist)) + break; + reasonpos += sprintf(reasonlist+reasonpos, "%s:%d ",scantostr(fpp->type), fpp->port); }