summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorNick Terrell <terrelln@fb.com>2018-01-05 22:30:49 (GMT)
committerNick Terrell <terrelln@fb.com>2018-01-05 22:30:49 (GMT)
commitc2dd686e96c7c4ff6a84bd43b68d3c28369e1f95 (patch)
tree239f9f20c0509270c70787e8d021327f28abd049 /lib
parent506ae9c3331133ea63705461d2d09eebfaf3235c (diff)
downloadlz4-c2dd686e96c7c4ff6a84bd43b68d3c28369e1f95.zip
lz4-c2dd686e96c7c4ff6a84bd43b68d3c28369e1f95.tar.gz
lz4-c2dd686e96c7c4ff6a84bd43b68d3c28369e1f95.tar.bz2
[lz4f] Skip memcpy() on empty dictionary
Diffstat (limited to 'lib')
-rw-r--r--lib/lz4frame.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/lib/lz4frame.c b/lib/lz4frame.c
index ebd1089..488ab75 100644
--- a/lib/lz4frame.c
+++ b/lib/lz4frame.c
@@ -1631,7 +1631,8 @@ size_t LZ4F_decompress(LZ4F_dctx* dctx,
if (dctx->tmpOutSize > 64 KB) copySize = 0;
if (copySize > preserveSize) copySize = preserveSize;
- memcpy(dctx->tmpOutBuffer + preserveSize - copySize, oldDictEnd - copySize, copySize);
+ if (copySize > 0)
+ memcpy(dctx->tmpOutBuffer + preserveSize - copySize, oldDictEnd - copySize, copySize);
dctx->dict = dctx->tmpOutBuffer;
dctx->dictSize = preserveSize + dctx->tmpOutStart;
@@ -1639,7 +1640,8 @@ size_t LZ4F_decompress(LZ4F_dctx* dctx,
const BYTE* const oldDictEnd = dctx->dict + dctx->dictSize;
size_t const newDictSize = MIN(dctx->dictSize, 64 KB);
- memcpy(dctx->tmpOutBuffer, oldDictEnd - newDictSize, newDictSize);
+ if (newDictSize > 0)
+ memcpy(dctx->tmpOutBuffer, oldDictEnd - newDictSize, newDictSize);
dctx->dict = dctx->tmpOutBuffer;
dctx->dictSize = newDictSize;