From cc6fe7083dfc35ffb94ff82b0042e8aae830f6c6 Mon Sep 17 00:00:00 2001 From: Mathias Date: Sun, 4 Oct 2026 22:31:03 +0200 Subject: [PATCH] refactor(web): drop a length check the closed-set parse already makes (#61) The read is capped at 17 bytes and no valid language is longer than 4, so the parse refuses anything the length check would; the mutant that removed it survived. Co-Authored-By: Claude Sonnet 5.5 --- internal/web/uploads.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/web/uploads.go b/internal/web/uploads.go index 392a4b9..0560088 100644 --- a/internal/web/uploads.go +++ b/internal/web/uploads.go @@ -36,7 +36,7 @@ const ( // and the title field; the cap itself is enforced on the file part by Intake. uploadOverhead = 1 << 20 maxTitleRunes = 200 - // maxLanguageBytes bounds the language field: the longest value is four bytes. + // maxLanguageBytes bounds what is read of the language field; a valid value is at most four bytes, so a longer one fails the parse. maxLanguageBytes = 16 // uploadPollEvery is how often an unfinished upload re-asks for its status. uploadPollEvery = "2s" @@ -136,7 +136,7 @@ func (a *App) handleUploadPost(w http.ResponseWriter, r *http.Request) { return } l, ok := domain.ParseLanguage(string(b)) - if !ok || len(b) > maxLanguageBytes { + if !ok { a.logger().Info("upload rejected", "reason", "language") a.renderUploadsPage(w, r, userID, http.StatusBadRequest, "Choose a language from the list.") return