snap-core 0.2.15.1 → 0.2.16
raw patch · 3 files changed
+10/−10 lines, 3 files
Files
- snap-core.cabal +1/−1
- src/Snap/Iteratee.hs +4/−8
- src/Snap/Util/FileServe.hs +5/−1
snap-core.cabal view
@@ -1,5 +1,5 @@ name: snap-core-version: 0.2.15.1+version: 0.2.16 synopsis: Snap: A Haskell Web Framework (Core) description:
src/Snap/Iteratee.hs view
@@ -442,14 +442,10 @@ -> IO (Iteratee IO a) _enumFilePartial fp (start,end) iter = do let len = end - start-- h <- liftIO $ openBinaryFile fp ReadMode- unless (start == 0) $- hSeek h AbsoluteSeek $ toInteger start-- let i' = joinI $ takeExactly len iter-- enumHandle h i' `finally` hClose h+ withBinaryFile fp ReadMode+ (\h -> do+ unless (start == 0) $ hSeek h AbsoluteSeek $ toInteger start+ enumHandle h $ joinI $ takeExactly len iter) enumFile :: FilePath -> Iteratee IO a -> IO (Iteratee IO a)
src/Snap/Util/FileServe.hs view
@@ -172,10 +172,14 @@ req <- getRequest let p = S.unpack $ rqPathInfo req + -- relative paths only!+ when (not $ isRelative p) pass+ -- check that we don't have any sneaky .. paths let dirs = splitDirectories p when (elem ".." dirs) pass- return p++ return $ joinPath dirs ------------------------------------------------------------------------------