[master] 773e4c1 Require -v argument to logexp

Martin Blix Grydeland martin at varnish-cache.org
Tue Oct 1 14:48:17 CEST 2013


commit 773e4c1cc55e1b2be4800c5ca12d8cef8f7ddcd3
Author: Martin Blix Grydeland <martin at varnish-software.com>
Date:   Tue Sep 17 14:55:52 2013 +0200

    Require -v argument to logexp

diff --git a/bin/varnishtest/vtc_logexp.c b/bin/varnishtest/vtc_logexp.c
index a5cbf86..c0a21c4 100644
--- a/bin/varnishtest/vtc_logexp.c
+++ b/bin/varnishtest/vtc_logexp.c
@@ -97,6 +97,7 @@ struct logexp {
 	char				*query;
 
 	struct VSM_data			*vsm;
+	struct vsb			*n_arg;
 	struct VSL_data			*vsl;
 	struct VSLQ			*vslq;
 	pthread_t			tp;
@@ -132,6 +133,8 @@ logexp_delete(struct logexp *le)
 	free(le->name);
 	free(le->query);
 	VSM_Delete(le->vsm);
+	if (le->n_arg)
+		VSB_delete(le->n_arg);
 	FREE_OBJ(le);
 }
 
@@ -308,6 +311,15 @@ logexp_start(struct logexp *le)
 	AZ(le->vsl);
 	AZ(le->vslq);
 
+	if (le->n_arg == NULL) {
+		vtc_log(le->vl, 0, "-v argument not given");
+		return;
+	}
+	if (VSM_n_Arg(le->vsm, VSB_data(le->n_arg)) <= 0) {
+		vtc_log(le->vl, 0, "-v argument error: %s",
+		    VSM_Error(le->vsm));
+		return;
+	}
 	if (VSM_Open(le->vsm)) {
 		vtc_log(le->vl, 0, "VSM_Open: %s", VSM_Error(le->vsm));
 		return;
@@ -453,7 +465,7 @@ cmd_logexp(CMD_ARGS)
 {
 	struct logexp *le, *le2;
 	const char tmpdir[] = "${tmpdir}";
-	struct vsb *vsb, *vsb2;
+	struct vsb *vsb;
 
 	(void)priv;
 	(void)cmd;
@@ -510,19 +522,18 @@ cmd_logexp(CMD_ARGS)
 				vtc_log(le->vl, 0, "Missing -v argument");
 				return;
 			}
+			if (le->n_arg != NULL) {
+				VSB_delete(le->n_arg);
+				le->n_arg = NULL;
+			}
 			vsb = VSB_new_auto();
+			AN(vsb);
 			AZ(VSB_printf(vsb, "%s/%s", tmpdir, av[1]));
 			AZ(VSB_finish(vsb));
-			vsb2 = macro_expand(le->vl, VSB_data(vsb));
+			le->n_arg = macro_expand(le->vl, VSB_data(vsb));
 			VSB_delete(vsb);
-			if (vsb2 == NULL)
-				return;
-			if (VSM_n_Arg(le->vsm, VSB_data(vsb2)) <= 0) {
-				vtc_log(le->vl, 0, "-v argument error: %s",
-				    VSM_Error(le->vsm));
+			if (le->n_arg == NULL)
 				return;
-			}
-			VSB_delete(vsb2);
 			av++;
 			continue;
 		}



More information about the varnish-commit mailing list