mirror of
https://github.com/samba-team/samba.git
synced 2025-01-10 01:18:15 +03:00
compression/huffman: double check distance in matches (CID 1517278)
Because we just wrote the intermediate representation to have no zero distances, we can be sure it doesn't, but Coverity doesn't know. If distance is zero, `bitlen_nonzero_16(distance)` would be bad. CID 1517278 (#1 of 1): Bad bit shift operation (BAD_SHIFT)41. large_shift: In expression 1 << code_dist, left shifting by more than 31 bits has undefined behavior. The shift amount, code_dist, is 65535. Signed-off-by: Douglas Bagnall <douglas.bagnall@catalyst.net.nz> Reviewed-by: Jeremy Allison <jra@samba.org>
This commit is contained in:
parent
6b4d94c987
commit
628f14c149
@ -1062,6 +1062,9 @@ static ssize_t write_compressed_bytes(uint16_t symbol_values[512],
|
||||
} else {
|
||||
return LZXPRESS_ERROR;
|
||||
}
|
||||
if (unlikely(distance == 0)) {
|
||||
return LZXPRESS_ERROR;
|
||||
}
|
||||
/* len has already had 3 subtracted */
|
||||
if (len >= 15) {
|
||||
/*
|
||||
|
Loading…
Reference in New Issue
Block a user