[master] 2cf57b2e9 vcc_acl: centralize acl_e copying

Nils Goroll nils.goroll at uplex.de
Sat Mar 27 16:44:04 UTC 2021


commit 2cf57b2e951a6df2c7d13733f100cd293223500c
Author: Nils Goroll <nils.goroll at uplex.de>
Date:   Sat Mar 27 17:39:10 2021 +0100

    vcc_acl: centralize acl_e copying
    
    Move the address strdup() to where the acl_e is allocated.
    
    This plugs an utterly insignificant leak for error returns from
    vcc_acl_entry().

diff --git a/lib/libvcc/vcc_acl.c b/lib/libvcc/vcc_acl.c
index 2cd215f3c..82cd31985 100644
--- a/lib/libvcc/vcc_acl.c
+++ b/lib/libvcc/vcc_acl.c
@@ -214,6 +214,8 @@ vcc_acl_add_entry(struct vcc *tl, const struct acl_e *ae, int l,
 	ALLOC_OBJ(aen, VCC_ACL_E_MAGIC);
 	AN(aen);
 	*aen = *ae;
+	aen->addr = strdup(ae->addr);
+	AN(aen->addr);
 
 	aen->fixed = vcc_acl_chk(tl, ae, l, u, fam);
 
@@ -385,8 +387,7 @@ vcc_acl_entry(struct vcc *tl)
 
 	ExpectErr(tl, CSTR);
 	ae->t_addr = tl->t;
-	ae->addr = strdup(ae->t_addr->dec);
-	AN(ae->addr);
+	ae->addr = ae->t_addr->dec;
 	vcc_NextToken(tl);
 
 	if (strchr(ae->t_addr->dec, '/') != NULL) {


More information about the varnish-commit mailing list