bytestring 0.11.5.3 → 0.11.5.4
raw patch · 3 files changed
+12/−5 lines, 3 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- Changelog.md +7/−0
- Data/ByteString/Builder/Internal.hs +4/−4
- bytestring.cabal +1/−1
Changelog.md view
@@ -1,3 +1,10 @@+[0.11.5.4] — January 2025++* Bug fixes:+ * [`Builder`: avoid unsound buffer reuse, introduced in `bytestring-0.11.5.0`](https://github.com/haskell/bytestring/pull/691)++[0.11.5.4]: https://github.com/haskell/bytestring/compare/0.11.5.3...0.11.5.4+ [0.11.5.3] — October 2023 * Bug fixes:
Data/ByteString/Builder/Internal.hs view
@@ -1096,7 +1096,7 @@ -- Checking for empty case avoids allocating 'n-1' empty -- buffers for 'n' insertChunkH right after each other. if isEmpty- then fill nextStep (Buffer fpbuf (BufferRange pbuf pe))+ then fill nextStep buf else do buf' <- nextBuffer (Just (buf, bufSize)) fill nextStep buf' @@ -1108,9 +1108,9 @@ | trim chunkSize size = do bs <- S.createFp chunkSize $ \fpbuf' -> S.memcpyFp fpbuf' fpbuf chunkSize- -- Instead of allocating a new buffer after trimming,- -- we re-use the old buffer and consider it empty.- return $ Yield1 bs (mkCIOS True)+ -- It is not safe to re-use the old buffer (see #690),+ -- so we allocate a new buffer after trimming.+ return $ Yield1 bs (mkCIOS False) | otherwise = return $ Yield1 (S.BS fpbuf chunkSize) (mkCIOS False) where
bytestring.cabal view
@@ -1,5 +1,5 @@ Name: bytestring-Version: 0.11.5.3+Version: 0.11.5.4 Synopsis: Fast, compact, strict and lazy byte strings with a list interface Description: An efficient compact, immutable byte string type (both strict and lazy)