[master] 445b07f5f Use VSL_OVERHEAD when reading binary VSL records back from files.

Poul-Henning Kamp phk at FreeBSD.org
Wed Oct 26 14:09:09 UTC 2022


commit 445b07f5f7d98be06989a43ecdb6c3f26aba9c55
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date:   Wed Oct 26 14:08:07 2022 +0000

    Use VSL_OVERHEAD when reading binary VSL records back from files.

diff --git a/lib/libvarnishapi/vsl_cursor.c b/lib/libvarnishapi/vsl_cursor.c
index b06f7deb5..3d356ad1c 100644
--- a/lib/libvarnishapi/vsl_cursor.c
+++ b/lib/libvarnishapi/vsl_cursor.c
@@ -362,13 +362,13 @@ vslc_file_next(const struct VSL_cursor *cursor)
 	do {
 		c->cursor.rec.ptr = NULL;
 		assert(c->buflen >= 2);
-		i = vslc_file_readn(c->fd, c->buf, VSL_BYTES(2));
+		i = vslc_file_readn(c->fd, c->buf, VSL_BYTES(VSL_OVERHEAD));
 		if (i < 0)
 			return (vsl_e_io);
 		if (i == 0)
 			return (vsl_e_eof);
-		assert(i == VSL_BYTES(2));
-		l = 2 + VSL_WORDS(VSL_LEN(c->buf));
+		assert(i == VSL_BYTES(VSL_OVERHEAD));
+		l = VSL_OVERHEAD + VSL_WORDS(VSL_LEN(c->buf));
 		if (c->buflen < l) {
 			while (c->buflen < l)
 				c->buflen = 2 * l;
@@ -376,13 +376,13 @@ vslc_file_next(const struct VSL_cursor *cursor)
 			AN(c->buf);
 		}
 		if (l > 2) {
-			i = vslc_file_readn(c->fd, c->buf + 2,
-			    VSL_BYTES(l - 2));
+			i = vslc_file_readn(c->fd, c->buf + VSL_OVERHEAD,
+			    VSL_BYTES(l - VSL_OVERHEAD));
 			if (i < 0)
 				return (vsl_e_io);
 			if (i == 0)
 				return (vsl_e_eof);
-			assert(i == VSL_BYTES(l - 2));
+			assert(i == VSL_BYTES(l - VSL_OVERHEAD));
 		}
 		c->cursor.rec.ptr = c->buf;
 	} while (VSL_TAG(c->cursor.rec.ptr) == SLT__Batch);


More information about the varnish-commit mailing list