From 6205224358ff7b4e48eaa79cdf19a9e9c8053111 Mon Sep 17 00:00:00 2001 From: Palapeli <26661008+mkwcat@users.noreply.github.com> Date: Thu, 9 Apr 2026 13:07:06 -0400 Subject: [PATCH] NAS: Don't panic on invalid stage 1 version --- nas/payload.go | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/nas/payload.go b/nas/payload.go index 985c1d4..1db1b0f 100644 --- a/nas/payload.go +++ b/nas/payload.go @@ -21,15 +21,20 @@ import ( ) func downloadStage1(w http.ResponseWriter, r *http.Request) { - stage1Ver := r.URL.Path[len(r.URL.Path)-1] - '0' + ver := r.URL.Path[len(r.URL.Path)-1] - '0' path := "payload/stage1.bin" - if stage1Ver != 0 { - path = "payload/stage1v" + strconv.Itoa(int(stage1Ver)) + ".bin" + if ver != 0 { + path = "payload/stage1v" + strconv.Itoa(int(ver)) + ".bin" } dat, err := os.ReadFile(path) if err != nil { - panic(err) + if err == os.ErrNotExist { + replyHTTPError(w, http.StatusNotFound, "404 Not Found") + return + } + replyHTTPError(w, http.StatusInternalServerError, "500 Internal Server Error") + return } payload := append([]byte{0x01, 0x2C}, dat...)