on master help sign in
Fix spaceleak in sendResponse
commit5b8a0863812eff37a4887b456c574fc1bdc4baa7 authorEdsko de Vries <edsko@well-typed.com> dateFri 28 Oct 2016, 19:29 (10 years ago) parentaaf3114
1 file changed+3−1
warp/Network/Wai/Handler/Warp/Response.hs+3−1
warp/Network/Wai/Handler/Warp/Response.hs+3−1
@@ -136,6 +136,8 @@ sendResponse :: Settings
136136sendResponse settings conn ii req reqidxhdr src response = do
137137 hs <- addServerAndDate hs0
138138 if hasBody s then do
139+ -- Make sure we don't hang on to 'response' (avoid space leak)
140+ ret' <- E.evaluate ret
139141 -- The response to HEAD does not have body.
140142 -- But to handle the conditional requests defined RFC 7232 and
141143 -- to generate appropriate content-length, content-range,
@@ -147,7 +149,7 @@ sendResponse settings conn ii req reqidxhdr src response = do
147149 Nothing -> return ()
148150 Just realStatus -> logger req realStatus mlen
149151 T.tickle th
150− return ret
152+ return ret'
151153 else do
152154 _ <- sendRsp conn ii ver s hs RspNoBody
153155 logger req s Nothing