From 9b5c2e4046ee5c111c4044af0702aa5649200823 Mon Sep 17 00:00:00 2001 From: Sai Asish Y Date: Mon, 24 Aug 2026 19:17:29 -0700 Subject: [PATCH] fix: prevent panic in PostForm getters when Request is nil Signed-off-by: Sai Asish Y --- context.go | 3 +++ context_test.go | 10 ++++++++++ 2 files changed, 13 insertions(+) diff --git a/context.go b/context.go index 1dc730e3..1fe3f568 100644 --- a/context.go +++ b/context.go @@ -649,6 +649,9 @@ func (c *Context) initFormCache() { if c.formCache == nil { c.formCache = make(url.Values) req := c.Request + if req == nil { + return + } if err := req.ParseMultipartForm(c.engine.MaxMultipartMemory); err != nil { if !errors.Is(err, http.ErrNotMultipart) { debugPrint("error on parse multipart form array: %v", err) diff --git a/context_test.go b/context_test.go index e8d305e4..f4c944c3 100644 --- a/context_test.go +++ b/context_test.go @@ -3955,3 +3955,13 @@ func BenchmarkGetMapFromFormData(b *testing.B) { }) } } + +func TestContextPostFormNoRequest(t *testing.T) { + c, _ := CreateTestContext(httptest.NewRecorder()) + + value, ok := c.GetPostForm("key") + assert.False(t, ok) + assert.Empty(t, value) + assert.Empty(t, c.PostForm("key")) + assert.Equal(t, "fallback", c.DefaultPostForm("key", "fallback")) +}