cerca

lean forum software (pmc local branch)
Log | Files | Refs | README | LICENSE

commit 0a230e8f22602082a750526fe70a81784dd073f0
parent cf7acdfdde0364c1a0ccd3a55b6f7bd7103f0624
Author: cblgh <cblgh@cblgh.org>
Date:   Wed, 12 Jan 2022 09:55:10 +0100

avoid crashing the server when viewing a non-int thread id

Diffstat:
Mserver/server.go | 12++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/server/server.go b/server/server.go @@ -118,7 +118,6 @@ func (h RequestHandler) renderView(res http.ResponseWriter, viewName string, dat } func (h RequestHandler) ThreadRoute(res http.ResponseWriter, req *http.Request) { - ed := util.Describe("thread route") parts := strings.Split(strings.TrimSpace(req.URL.Path), "/") // invalid route, redirect to index if len(parts) < 2 || parts[2] == "" { @@ -128,7 +127,16 @@ func (h RequestHandler) ThreadRoute(res http.ResponseWriter, req *http.Request) loggedIn, userid := h.IsLoggedIn(req) threadid, err := strconv.Atoi(parts[2]) - ed.Check(err, "parse %s as id slug", parts[2]) + if err != nil { + dump(err) + title := "Page not found" + data := GenericMessageData{ + Title: title, + Message: "The visited page does not exist (anymore?)", + } + h.renderView(res, "generic-message", TemplateData{Data: data, LoggedIn: loggedIn}) + return + } if req.Method == "POST" && loggedIn { // handle POST (=> add a reply, then show the thread)