r662 - trunk/varnish-cache/bin/varnishd

phk at projects.linpro.no phk at projects.linpro.no
Sat Aug 5 14:22:46 CEST 2006


Author: phk
Date: 2006-08-05 14:22:46 +0200 (Sat, 05 Aug 2006)
New Revision: 662

Modified:
   trunk/varnish-cache/bin/varnishd/cache_cli.c
Log:
Make sure we don't overflow the line buffer

Remove unused #include


Modified: trunk/varnish-cache/bin/varnishd/cache_cli.c
===================================================================
--- trunk/varnish-cache/bin/varnishd/cache_cli.c	2006-08-05 12:20:13 UTC (rev 661)
+++ trunk/varnish-cache/bin/varnishd/cache_cli.c	2006-08-05 12:22:46 UTC (rev 662)
@@ -9,7 +9,6 @@
 #include <unistd.h>
 #include <poll.h>
 
-#include "libvarnish.h"
 #include "shmlog.h"
 #include "cli.h"
 #include "cli_priv.h"
@@ -72,7 +71,7 @@
 		i = poll(pfd, 1, 5000);
 		if (i == 0)
 			continue;
-		if (nbuf == lbuf) {
+		if ((nbuf + 2) >= lbuf) {
 			lbuf += lbuf;
 			buf = realloc(buf, lbuf);
 			assert(buf != NULL);
@@ -80,6 +79,7 @@
 		i = read(heritage.fds[2], buf + nbuf, lbuf - nbuf);
 		if (i <= 0) {
 			VSL(SLT_Error, 0, "CLI read %d (errno=%d)", i, errno);
+			free(buf);
 			return;
 		}
 		nbuf += i;
@@ -94,6 +94,7 @@
 		i = cli_writeres(heritage.fds[1], cli);
 		if (i) {
 			VSL(SLT_Error, 0, "CLI write failed (errno=%d)", errno);
+			free(buf);
 			return;
 		}
 		VSL(SLT_CLI, 0, "Wr %d %d %s",




More information about the varnish-commit mailing list