From 02b5b7d2bb9644f890bf84eb3038ad8e0a4ed02e Mon Sep 17 00:00:00 2001 From: Catherine Date: Tue, 11 Nov 2025 15:55:47 +0000 Subject: [PATCH] Ignore only the malformed `_redirects`/`_headers` rules. Before this commit, upon encountering a malformed rule, the entire file was ignored. This is both increasingly unviable for complex sites, a likely source of self-DoS (or at least degradation of service), and not the behavior Grebedoc has been promising for a few weeks. --- src/headers.go | 3 ++- src/redirects.go | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/headers.go b/src/headers.go index 23ef4b0..9668542 100644 --- a/src/headers.go +++ b/src/headers.go @@ -103,8 +103,9 @@ func ProcessHeadersFile(manifest *Manifest) error { for index, rule := range rules { if err := validateHeaderRule(rule); err != nil { - return AddProblem(manifest, headersFileName, + AddProblem(manifest, headersFileName, "rule #%d %q: %s", index+1, rule.Path, err) + continue } headerMap := []*Header{} for header, values := range rule.Headers { diff --git a/src/redirects.go b/src/redirects.go index b88a12b..223f9fe 100644 --- a/src/redirects.go +++ b/src/redirects.go @@ -102,8 +102,9 @@ func ProcessRedirectsFile(manifest *Manifest) error { for index, rule := range rules { if err := validateRedirectRule(rule); err != nil { - return AddProblem(manifest, redirectsFileName, + AddProblem(manifest, redirectsFileName, "rule #%d %q: %s", index+1, unparseRule(rule), err) + continue } manifest.Redirects = append(manifest.Redirects, &RedirectRule{ From: proto.String(rule.From),