diff options
author | Yann Collet <cyan@fb.com> | 2020-11-08 03:38:07 (GMT) |
---|---|---|
committer | Yann Collet <cyan@fb.com> | 2020-11-08 03:42:57 (GMT) |
commit | e251a840253c5564364bf5c8c662a6fe623dc3e9 (patch) | |
tree | 4c1cf21414f1feff4f309a2e9fad74fe8b0dff28 /lib/lz4.c | |
parent | b16b9fcdbc110876c9cd82ac1c3392abc0c2e1b3 (diff) | |
download | lz4-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.c | 4 |
1 files changed, 3 insertions, 1 deletions
@@ -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; |