]> jfr.im git - irc/quakenet/newserv.git/commitdiff
Fix buffer overflow
authorCruicky <redacted>
Sun, 27 Jul 2008 00:05:34 +0000 (01:05 +0100)
committerCruicky <redacted>
Sun, 27 Jul 2008 00:05:34 +0000 (01:05 +0100)
proxyscan/proxyscandb.c

index 484445d2aa938372163b32f033885e9c33f92a05..38397aa5089cb9e607c5b837f3a04c2c3f584478 100644 (file)
@@ -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);
   }