on master help sign in
Fix debug check in putSliceUnsafe
commita79caed54dbedc34547000e1856165fc87f5ebb5 authorHarendra Kumar <harendra@composewell.com> dateMon 27 Nov 2023, 10:06 (3 years ago) parent6c934ae
1 file changed+7−3
core/src/Streamly/Internal/Data/MutByteArray/Type.hs+7−3
core/src/Streamly/Internal/Data/MutByteArray/Type.hs+7−3
@@ -182,9 +182,13 @@ putSliceUnsafe ::
182182putSliceUnsafe src srcStartBytes dst dstStartBytes lenBytes = liftIO $ do
183183#ifdef DEBUG
184184 srcLen <- sizeOfMutableByteArray src
185− dstLen <- sizeOfMutableByteArray src
186− when (srcLen - srcStartBytes < lenBytes) $ error "SRC: Insufficient length."
187− when (dstLen - dstStartBytes < lenBytes) $ error "DST: Insufficient length."
185+ dstLen <- sizeOfMutableByteArray dst
186+ when (srcLen - srcStartBytes < lenBytes)
187+ $ error $ "putSliceUnsafe: src overflow: start" ++ show srcStartBytes
188+ ++ " end " ++ show srcLen ++ " len " ++ show lenBytes
189+ when (dstLen - dstStartBytes < lenBytes)
190+ $ error $ "putSliceUnsafe: dst overflow: start" ++ show dstStartBytes
191+ ++ " end " ++ show dstLen ++ " len " ++ show lenBytes
188192#endif
189193 let !(I# srcStartBytes#) = srcStartBytes
190194 !(I# dstStartBytes#) = dstStartBytes