]> andersk Git - scripts-static-cat.git/commitdiff
Check bounds on byte range specifiers.
authorAnders Kaseorg <andersk@mit.edu>
Mon, 12 Jul 2010 03:09:59 +0000 (23:09 -0400)
committerAnders Kaseorg <andersk@mit.edu>
Tue, 13 Jul 2010 00:38:47 +0000 (20:38 -0400)
Signed-off-by: Anders Kaseorg <andersk@mit.edu>
StaticCat.hs

index 9f8881c0e28f1c786a85890c1be6c35860a3734b..b5d03fc6db23fc0170284f2b085b91c68d874e73 100644 (file)
@@ -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))
This page took 0.035607 seconds and 5 git commands to generate.