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