From: Lasse Collin Date: Sat, 13 Sep 2008 10:54:00 +0000 (+0300) Subject: LZ decoder cleanup X-Git-Tag: v4.999.7beta~67 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=13d68b069849e19c33822cd8996cd6447890abb1;p=xz LZ decoder cleanup --- diff --git a/src/liblzma/lz/lz_decoder.c b/src/liblzma/lz/lz_decoder.c index 0344ae6a..d4bd59f2 100644 --- a/src/liblzma/lz/lz_decoder.c +++ b/src/liblzma/lz/lz_decoder.c @@ -219,12 +219,11 @@ lzma_lz_decoder_init(lzma_next_coder *next, lzma_allocator *allocator, // dictionary to the output buffer, since applications are // recommended to give aligned buffers to liblzma. // - // Avoid integer overflow. FIXME Should the return value be - // LZMA_OPTIONS_ERROR or LZMA_MEM_ERROR? + // Avoid integer overflow. if (dict_size > SIZE_MAX - 15) return LZMA_MEM_ERROR; - dict_size = (dict_size + 15) & (SIZE_MAX - 15); + dict_size = (dict_size + 15) & ~((size_t)(15)); // Allocate and initialize the dictionary. if (next->coder->dict.size != dict_size) {