[master] ad19df6 Don't use ws when returning the fallback value

Federico G. Schwindt fgsch at lodoss.net
Sun Apr 9 04:41:05 CEST 2017


commit ad19df6a0c8d65a1045563b90f76bd4fad0e7326
Author: Federico G. Schwindt <fgsch at lodoss.net>
Date:   Sun Apr 9 11:36:39 2017 +0900

    Don't use ws when returning the fallback value

diff --git a/lib/libvmod_std/vmod_std_conversions.c b/lib/libvmod_std/vmod_std_conversions.c
index 7fb736c..24dd571 100644
--- a/lib/libvmod_std/vmod_std_conversions.c
+++ b/lib/libvmod_std/vmod_std_conversions.c
@@ -125,7 +125,7 @@ vmod_ip(VRT_CTX, VCL_STRING s, VCL_IP d)
 	const struct addrinfo *res;
 	int error;
 	void *p;
-	struct suckaddr *r;
+	const struct suckaddr *r;
 
 	CHECK_OBJ_NOTNULL(ctx, VRT_CTX_MAGIC);
 	AN(d);
@@ -135,7 +135,7 @@ vmod_ip(VRT_CTX, VCL_STRING s, VCL_IP d)
 	if (p == NULL) {
 		VSLb(ctx->vsl, SLT_VCL_Error,
 		    "vmod std.ip(): insufficient workspace");
-		return d;
+		return (d);
 	}
 	r = NULL;
 
@@ -153,8 +153,8 @@ vmod_ip(VRT_CTX, VCL_STRING s, VCL_IP d)
 		}
 	}
 	if (r == NULL) {
-		r = p;
-		memcpy(r, d, vsa_suckaddr_len);
+		WS_Reset(ctx->ws, (uintptr_t)p);
+		r = d;
 	}
 	if (res0 != NULL)
 		freeaddrinfo(res0);



More information about the varnish-commit mailing list