[master] 68446cc7f Make sure VCL_BYTES are non-negative

Poul-Henning Kamp phk at FreeBSD.org
Tue Mar 12 10:42:07 UTC 2019


commit 68446cc7faeac77567e2f311512346900ba76c82
Author: Poul-Henning Kamp <phk at FreeBSD.org>
Date:   Tue Mar 12 10:40:54 2019 +0000

    Make sure VCL_BYTES are non-negative
    
    Pointed out by: slink

diff --git a/lib/libvmod_std/vmod_std_conversions.c b/lib/libvmod_std/vmod_std_conversions.c
index c89fa4e91..7bb4a67ff 100644
--- a/lib/libvmod_std/vmod_std_conversions.c
+++ b/lib/libvmod_std/vmod_std_conversions.c
@@ -123,13 +123,13 @@ vmod_bytes(VRT_CTX, struct VARGS(bytes) *a)
 	    r <= VCL_BYTES_MAX)
 		return((VCL_BYTES)r);
 
-	if (a->valid_real) {
+	if (a->valid_real && !isnan(a->real) && a->real >= 0) {
 		rr = trunc(a->real);
 		if (rr <= (VCL_REAL)VCL_BYTES_MAX)
 			return((VCL_BYTES)rr);
 	}
 
-	if (a->valid_integer)
+	if (a->valid_integer && a->integer >= 0)
 		return((VCL_BYTES)a->integer);
 
 	if (a->valid_fallback)


More information about the varnish-commit mailing list