From 8504b6d13d65c2df0f6ba1db5e6c1bb6a651099d Mon Sep 17 00:00:00 2001 From: Hein Date: Sat, 3 Jan 2026 14:43:31 +0200 Subject: [PATCH] fix(staticweb): add nil check to WithStripPrefix helper Prevent panic when WithStripPrefix is called with a nil provider by using reflection to check for typed nil pointers stored in interfaces. --- pkg/server/staticweb/interfaces.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pkg/server/staticweb/interfaces.go b/pkg/server/staticweb/interfaces.go index 6a71f4b..2a41b3c 100644 --- a/pkg/server/staticweb/interfaces.go +++ b/pkg/server/staticweb/interfaces.go @@ -3,6 +3,7 @@ package staticweb import ( "io/fs" "net/http" + "reflect" ) // FileSystemProvider abstracts the source of files (local, zip, embedded, future: http, s3) @@ -51,7 +52,10 @@ type PrefixStrippingProvider interface { // WithStripPrefix is a helper function that sets the strip prefix on a provider // if it implements PrefixStrippingProvider. Returns the provider for method chaining. func WithStripPrefix(provider FileSystemProvider, prefix string) FileSystemProvider { - if p, ok := provider.(PrefixStrippingProvider); ok { + if provider == nil || reflect.ValueOf(provider).IsNil() { + return provider + } + if p, ok := provider.(PrefixStrippingProvider); ok && p != nil { p.WithStripPrefix(prefix) } return provider