r3516 - in trunk/varnish-cache/bin: varnishd varnishtest/tests

phk at projects.linpro.no phk at projects.linpro.no
Sun Jan 18 15:54:41 CET 2009


Author: phk
Date: 2009-01-18 15:54:41 +0100 (Sun, 18 Jan 2009)
New Revision: 3516

Modified:
   trunk/varnish-cache/bin/varnishd/cache_ban.c
   trunk/varnish-cache/bin/varnishtest/tests/c00021.vtc
Log:
Properly quote the ban descriptions.



Modified: trunk/varnish-cache/bin/varnishd/cache_ban.c
===================================================================
--- trunk/varnish-cache/bin/varnishd/cache_ban.c	2009-01-18 14:50:20 UTC (rev 3515)
+++ trunk/varnish-cache/bin/varnishd/cache_ban.c	2009-01-18 14:54:41 UTC (rev 3516)
@@ -215,6 +215,7 @@
 {
 	struct ban_test *bt;
 	char buf[512];
+	struct vsb *sb;
 	int i;
 
 	CHECK_OBJ_NOTNULL(b, BAN_MAGIC);
@@ -253,8 +254,15 @@
 	}
 
 	 /* XXX: proper quoting */
-	asprintf(&bt->test, "%s %s \"%s\"", a1, a2, a3);
-
+	sb = vsb_newauto();
+	XXXAN(sb);
+	vsb_printf(sb, "%s %s ", a1, a2);
+	vsb_quote(sb, a3, 0);
+	vsb_finish(sb);
+	AZ(vsb_overflowed(sb));
+	bt->test = strdup(vsb_data(sb));
+	XXXAN(bt->test);
+	vsb_delete(sb);
 	return (0);
 }
 

Modified: trunk/varnish-cache/bin/varnishtest/tests/c00021.vtc
===================================================================
--- trunk/varnish-cache/bin/varnishtest/tests/c00021.vtc	2009-01-18 14:50:20 UTC (rev 3515)
+++ trunk/varnish-cache/bin/varnishtest/tests/c00021.vtc	2009-01-18 14:54:41 UTC (rev 3516)
@@ -28,8 +28,8 @@
 varnish v1 -clierr 106 "purge a b c && a"
 varnish v1 -clierr 106 "purge a b c && a b"
 varnish v1 -clierr 106 "purge a b c || a b c"
-varnish v1 -cli "purge req.url ~ foo"
-# varnish v1 -cli "purge req.url ~ foo && req.url ~ bar"
+varnish v1 -cliok "purge req.url ~ foo && req.url ~ \"[ o]\""
+varnish v1 -cliok "purge.list"
 
 client c1 {
 	txreq -url "/foo"



More information about the varnish-commit mailing list