summaryrefslogtreecommitdiffstats
path: root/lib/lz4.c
diff options
context:
space:
mode:
authorYann Collet <cyan@fb.com>2020-11-08 03:38:07 (GMT)
committerYann Collet <cyan@fb.com>2020-11-08 03:42:57 (GMT)
commite251a840253c5564364bf5c8c662a6fe623dc3e9 (patch)
tree4c1cf21414f1feff4f309a2e9fad74fe8b0dff28 /lib/lz4.c
parentb16b9fcdbc110876c9cd82ac1c3392abc0c2e1b3 (diff)
downloadlz4-e251a840253c5564364bf5c8c662a6fe623dc3e9.zip
lz4-e251a840253c5564364bf5c8c662a6fe623dc3e9.tar.gz
lz4-e251a840253c5564364bf5c8c662a6fe623dc3e9.tar.bz2
fix minor UBs
- check alignment before casting a pointer - saveDict : don't memmove() on NULL dst
Diffstat (limited to 'lib/lz4.c')
-rw-r--r--lib/lz4.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/lz4.c b/lib/lz4.c
index c41a084..427673e 100644
--- a/lib/lz4.c
+++ b/lib/lz4.c
@@ -1661,7 +1661,9 @@ int LZ4_saveDict (LZ4_stream_t* LZ4_dict, char* safeBuffer, int dictSize)
if ((U32)dictSize > 64 KB) { dictSize = 64 KB; } /* useless to define a dictionary > 64 KB */
if ((U32)dictSize > dict->dictSize) { dictSize = (int)dict->dictSize; }
- memmove(safeBuffer, previousDictEnd - dictSize, dictSize);
+ if (safeBuffer == NULL) assert(dictSize == 0);
+ if (safeBuffer != NULL)
+ memmove(safeBuffer, previousDictEnd - dictSize, dictSize);
dict->dictionary = (const BYTE*)safeBuffer;
dict->dictSize = (U32)dictSize;