Remove possible NULL pointer addition
Refactor `ZSTDMT_isOverlapped()` to do NULL checks before computing the end pointer. Fixes #2906.dev
parent
38dfc4699e
commit
b94407b6cf
|
@ -1550,18 +1550,22 @@ static range_t ZSTDMT_getInputDataInUse(ZSTDMT_CCtx* mtctx)
|
||||||
static int ZSTDMT_isOverlapped(buffer_t buffer, range_t range)
|
static int ZSTDMT_isOverlapped(buffer_t buffer, range_t range)
|
||||||
{
|
{
|
||||||
BYTE const* const bufferStart = (BYTE const*)buffer.start;
|
BYTE const* const bufferStart = (BYTE const*)buffer.start;
|
||||||
BYTE const* const bufferEnd = bufferStart + buffer.capacity;
|
|
||||||
BYTE const* const rangeStart = (BYTE const*)range.start;
|
BYTE const* const rangeStart = (BYTE const*)range.start;
|
||||||
BYTE const* const rangeEnd = range.size != 0 ? rangeStart + range.size : rangeStart;
|
|
||||||
|
|
||||||
if (rangeStart == NULL || bufferStart == NULL)
|
if (rangeStart == NULL || bufferStart == NULL)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
{
|
||||||
|
BYTE const* const bufferEnd = bufferStart + buffer.capacity;
|
||||||
|
BYTE const* const rangeEnd = rangeStart + range.size;
|
||||||
|
|
||||||
/* Empty ranges cannot overlap */
|
/* Empty ranges cannot overlap */
|
||||||
if (bufferStart == bufferEnd || rangeStart == rangeEnd)
|
if (bufferStart == bufferEnd || rangeStart == rangeEnd)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
return bufferStart < rangeEnd && rangeStart < bufferEnd;
|
return bufferStart < rangeEnd && rangeStart < bufferEnd;
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
static int ZSTDMT_doesOverlapWindow(buffer_t buffer, ZSTD_window_t window)
|
static int ZSTDMT_doesOverlapWindow(buffer_t buffer, ZSTD_window_t window)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in New Issue