diff options
author | Yann Collet <cyan@fb.com> | 2019-04-08 19:49:54 (GMT) |
---|---|---|
committer | Yann Collet <cyan@fb.com> | 2019-04-08 19:49:54 (GMT) |
commit | c198a39a663d5a36d2d564a2a4140485e42404bb (patch) | |
tree | 0bb8ed72f3a314eb106e339a1664bc9e7f9386fc /lib/lz4.c | |
parent | 34f0004a5ed5ca5a113432bf2e433966d545133e (diff) | |
download | lz4-c198a39a663d5a36d2d564a2a4140485e42404bb.zip lz4-c198a39a663d5a36d2d564a2a4140485e42404bb.tar.gz lz4-c198a39a663d5a36d2d564a2a4140485e42404bb.tar.bz2 |
LZ4_initStream() checks alignment restriction
updated associated documentation
Diffstat (limited to 'lib/lz4.c')
-rw-r--r-- | lib/lz4.c | 7 |
1 files changed, 7 insertions, 0 deletions
@@ -1284,10 +1284,17 @@ LZ4_stream_t* LZ4_createStream(void) return lz4s; } +static size_t LZ4_stream_t_alignment(void) +{ + struct { char c; LZ4_stream_t t; } t_a; + return sizeof(t_a) - sizeof(t_a.t); +} + LZ4_stream_t* LZ4_initStream (void* buffer, size_t size) { DEBUGLOG(5, "LZ4_initStream"); if (size < sizeof(LZ4_stream_t)) return NULL; + if (((size_t)buffer) & (LZ4_stream_t_alignment() - 1)) return NULL; /* alignment check */ MEM_INIT(buffer, 0, sizeof(LZ4_stream_t)); return (LZ4_stream_t*)buffer; } |