The Debian packaging of varnish-modules is maintained in git, using the merging
workflow described in dgit-maint-merge(7).  There isn't a patch queue that can
be represented as a quilt series.

A detailed breakdown of the changes is available from their canonical
representation - git commits in the packaging repository.  For example, to see
the changes made by the Debian maintainer in the first upload of upstream
version 1.2.3, you could use:

    % git clone https://git.dgit.debian.org/varnish-modules
    % cd varnish-modules
    % git log --oneline 1.2.3..debian/1.2.3-1 -- . ':!debian'

(If you have dgit, use `dgit clone varnish-modules`, rather than plain `git
clone`.)

A single combined diff, containing all the changes, follows.

--- varnish-modules-0.20.0.orig/.circleci/config.yml
+++ varnish-modules-0.20.0/.circleci/config.yml
@@ -17,29 +17,14 @@ jobs:
           command: |
             export DEBIAN_FRONTEND=noninteractive
             export DEBCONF_NONINTERACTIVE_SEEN=true
-            sudo -E -- apt-get update
+            curl -s https://packagecloud.io/install/repositories/varnishcache/varnish71/script.deb.sh | sudo bash
             sudo -E -- apt-get install -y \
                 automake \
-                git \
-                libjemalloc-dev \
-                libedit-dev \
-                libtool \
-                libunwind-dev \
                 make \
-                libpcre3-dev \
                 python3-docutils \
                 python3 \
-                python3-sphinx
-            git clone https://github.com/varnishcache/varnish-cache.git /tmp/varnish-cache
-            cd /tmp/varnish-cache
-            ./autogen.des
-            if [ "arm.medium" = "<< parameters.rclass >>" ]; then
-                ./configure --libdir=/usr/lib/aarch64-linux-gnu/
-            else
-                ./configure --libdir=/usr/lib/x86_64-linux-gnu/
-            fi
-            make -j 8
-            sudo make install
+                python3-sphinx \
+                varnish-dev
       - checkout
       - run:
           name: Build and test
--- varnish-modules-0.20.0.orig/configure.ac
+++ varnish-modules-0.20.0/configure.ac
@@ -1,5 +1,5 @@
-AC_INIT([varnish-modules], [0.19.0])
-AC_COPYRIGHT([Copyright (c) 2016-2021 Varnish Software Group])
+AC_INIT([varnish-modules], [0.20.0])
+AC_COPYRIGHT([Copyright (c) 2016-2022 Varnish Software Group])
 
 AC_PREREQ(2.63)
 AC_CONFIG_MACRO_DIR([m4])
@@ -30,7 +30,7 @@ PKG_CHECK_VAR([VARNISHAPI_LIBDIR], [varn
 AC_SUBST([VARNISH_LIBRARY_PATH],
 	[$VARNISHAPI_LIBDIR:$VARNISHAPI_LIBDIR/varnish])
 
-VARNISH_PREREQ([7.0.0])
+VARNISH_PREREQ([7.1.0])
 VARNISH_VMODS([
 	accept
 	bodyaccess
--- varnish-modules-0.20.0.orig/src/Makefile.am
+++ varnish-modules-0.20.0/src/Makefile.am
@@ -139,6 +139,7 @@ VMOD_TESTS = \
 	tests/var/test03.vtc \
 	tests/var/test04.vtc \
 	tests/var/test05.vtc \
+	tests/var/test06.vtc \
 	tests/vsthrottle/test01.vtc \
 	tests/vsthrottle/test02.vtc \
 	tests/vsthrottle/test03.vtc \
--- /dev/null
+++ varnish-modules-0.20.0/src/tests/var/test06.vtc
@@ -0,0 +1,48 @@
+varnishtest "Test that running out of workspace memory fails the request"
+
+server s1 {
+	rxreq
+	txresp
+	rxreq
+	txresp
+} -start
+
+varnish v1 -vcl+backend {
+	import var from "${vmod_builddir}/.libs/libvmod_var.so";
+        import vtc;
+
+	sub vcl_deliver {
+               if (req.url == "/a") {
+                   # Leave only a single byte in the workspace free.
+                   vtc.workspace_alloc(client, -1);
+                   # The allocation of the the actual struct var is next and will fail now.
+                   var.set("a", "0");
+               }
+               if (req.url == "/b") {
+                   # Leave enough bytes in the workspace for the
+                   # struct var allocation to succeed, but fail when
+                   # copying the variable name.
+                   vtc.workspace_alloc(client, -64);
+                   var.set("b000000000000000000000000000000000000000000000000000000000000000", "0");
+               }
+	}
+} -start
+
+logexpect l1 -v v1 {
+	expect * * VCL_Error "vmod_var: alloc var: out of workspace"
+	expect * * VCL_Error "vmod_var: copy name: out of workspace"
+} -start
+
+client c1 {
+	txreq -url "/a"
+	rxresp
+	expect resp.status >= 500
+} -run
+
+client c1 {
+	txreq -url "/b"
+	rxresp
+	expect resp.status >= 500
+} -run
+
+logexpect l1 -wait
--- varnish-modules-0.20.0.orig/src/vmod_var.c
+++ varnish-modules-0.20.0/src/vmod_var.c
@@ -109,10 +109,18 @@ vh_get_var_alloc(struct var_head *vh, co
 	if (!v) {
 		/* Allocate and add */
 		v = (struct var*)WS_Alloc(ctx->ws, sizeof(struct var));
-		AN(v);
+		if (v == NULL)
+		{
+			VRT_fail(ctx, "vmod_var: alloc var: out of workspace");
+			return NULL;
+		}
 		v->magic = VAR_MAGIC;
 		v->name = WS_Copy(ctx->ws, name, -1);
-		AN(v->name);
+		if (v->name == NULL)
+                {
+			VRT_fail(ctx, "vmod_var: copy name: out of workspace");
+			return NULL;
+		}
 		VTAILQ_INSERT_HEAD(&vh->vars, v, list);
 	}
 	return v;
@@ -172,7 +180,8 @@ vmod_set_string(const struct vrt_ctx *ct
 	if (name == NULL)
 		return;
 	v = vh_get_var_alloc(get_vh(priv), name, ctx);
-	AN(v);
+	if (v == NULL)
+		return;
 	v->type = STRING;
 	if (value == NULL)
 		value = "";
@@ -204,7 +213,8 @@ vmod_set_ip(const struct vrt_ctx *ctx, s
 	if (name == NULL)
 		return;
 	v = vh_get_var_alloc(get_vh(priv), name, ctx);
-	AN(v);
+	if (v == NULL)
+		return;
 	v->type = IP;
 	AN(ip);
 	v->value.IP = WS_Copy(ctx->ws, ip, vsa_suckaddr_len);;
@@ -234,7 +244,8 @@ vmod_set_##vcl_type_l(const struct vrt_c
 	if (name == NULL)						\
 		return;							\
 	v = vh_get_var_alloc(get_vh(priv), name, ctx);			\
-	AN(v);								\
+	if (v == NULL)                                                  \
+		return;                                                 \
 	v->type = vcl_type_u;						\
 	v->value.vcl_type_u = value;					\
 }
