diff -Nur ../varnish-6.6.2.prep/bin/varnishd/cache/cache_http.c ./bin/varnishd/cache/cache_http.c
--- ../varnish-6.6.2.prep/bin/varnishd/cache/cache_http.c 2022-01-12 12:30:00.000000000 +0100
+++ ./bin/varnishd/cache/cache_http.c 2022-11-14 21:07:24.093085010 +0100
@@ -900,6 +900,8 @@
{
if (fm->hdf[u] & HDF_FILTER)
return (1);
+ if (u < HTTP_HDR_FIRST)
+ return (0);
#define HTTPH(a, b, c) \
if (((c) & how) && http_IsHdr(&fm->hd[u], (b))) \
return (1);
diff -Nur ../varnish-6.6.2.prep/bin/varnishtest/tests/r03830.vtc ./bin/varnishtest/tests/r03830.vtc
--- ../varnish-6.6.2.prep/bin/varnishtest/tests/r03830.vtc 1970-01-01 01:00:00.000000000 +0100
+++ ./bin/varnishtest/tests/r03830.vtc 2022-11-14 21:08:47.324725940 +0100
@@ -0,0 +1,29 @@
+varnishtest "3830: Do not call http_hdr_flags() on pseudo-headers"
+
+server s1 {
+ rxreq
+ txresp -reason ":x"
+
+ rxreq
+ txresp
+} -start
+
+varnish v1 -vcl+backend {
+ sub vcl_recv {
+ return (hash);
+ }
+} -start
+
+client c1 {
+ txreq
+ rxresp
+ expect resp.status == 200
+} -run
+
+client c2 {
+ txreq -url :x -method :x
+ rxresp
+ expect resp.status == 200
+} -run
+
+varnish v1 -vsl_catchup