From 31215b38560be2218842315433aa9b5258bb9749 Mon Sep 17 00:00:00 2001 From: YesDrX <68913671+YesDrX@users.noreply.github.com> Date: Sun, 23 Aug 2026 11:06:44 -0400 Subject: [PATCH] catch Defect in asynchttpserver for bad http request (#25820) https://github.com/nim-lang/Nim/issues/25819 --------- Co-authored-by: Andreas Rumpf --- lib/pure/asynchttpserver.nim | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/lib/pure/asynchttpserver.nim b/lib/pure/asynchttpserver.nim index f757301ed8..c83f0d9d51 100644 --- a/lib/pure/asynchttpserver.nim +++ b/lib/pure/asynchttpserver.nim @@ -152,9 +152,11 @@ proc parseProtocol(protocol: string): tuple[orig: string, major, minor: int] = raise newException(ValueError, "Invalid request protocol. Got: " & protocol) result.orig = protocol - i.inc protocol.parseSaturatedNatural(result.major, i) - if i < protocol.len: inc i # Skip . - i.inc protocol.parseSaturatedNatural(result.minor, i) + var n = protocol.parseSaturatedNatural(result.major, i) + i.inc n + if i < protocol.len and protocol[i] == '.': + inc i + n = protocol.parseSaturatedNatural(result.minor, i) proc sendStatus(client: AsyncSocket, status: string): Future[void] = client.send("HTTP/1.1 " & status & "\c\L\c\L")