NAME¶
range_arrayinbuf - range check for array in buffer
SYNTAX¶
#include <rangecheck.h>
int
range_arrayinbuf(const void* buf,size_t len,
const void* arraystart,
size_t elements,size_t membersize);
DESCRIPTION¶
range_arrayinbuf checks that the array starting at
arraystart consisting
of
elements members of size
membersize each starts and ends
within the buffer
buf[0..
len-1].
If the array is 0-terminated and you don't know the length beforehand, use
range_strinbuf, range_str2inbuf or range_str4inbuf instead.
RETURN VALUE¶
If the buffer is implausible (buf is NULL or buf+len has an integer overflow),
return 0.
If the array is implausible (arraystart is NULL, elements*membersize overflows,
or calculating the byte offset of the last element overflows), return 0.
If the first or last element of the array points before or after the buffer,
return 0.
Otherwise, return 1.
SEE ALSO¶
rangecheck(3)