From: Anders Kaseorg Date: Mon, 12 Jul 2010 03:09:59 +0000 (-0400) Subject: Check bounds on byte range specifiers. X-Git-Url: http://andersk.mit.edu/gitweb/scripts-static-cat.git/commitdiff_plain/374d09ff4081ea5bbbf70f412ea7c0b037b779e9?ds=sidebyside Check bounds on byte range specifiers. Signed-off-by: Anders Kaseorg --- diff --git a/StaticCat.hs b/StaticCat.hs index 9f8881c..b5d03fc 100644 --- a/StaticCat.hs +++ b/StaticCat.hs @@ -125,8 +125,8 @@ checkIfRange mTime = do parseRange :: String -> FileOffset -> Maybe (FileOffset, FileOffset) parseRange (splitAt 6 -> ("bytes=", readDec -> [(a, "-")])) size = Just (a, size - 1) -parseRange (splitAt 6 -> ("bytes=", readDec -> [(a, '-':(readDec -> [(b, "")]))])) _ = - Just (a, b) +parseRange (splitAt 6 -> ("bytes=", readDec -> [(a, '-':(readDec -> [(b, "")]))])) size = + Just (a, min (size - 1) b) parseRange _ _ = Nothing checkRange :: EpochTime -> FileOffset -> CGI (Maybe (FileOffset, FileOffset))