Mirror of :pserver:cvs@cvs.fefe.de:/cvs libowfat https://www.fefe.de/libowfat/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

32 lines
1.0 KiB

.TH range_arrayinbuf 3
range_arrayinbuf \- range check for array in buffer
.B #include <libowfat/rangecheck.h>
int \fBrange_arrayinbuf\fR(const void* buf,size_t len,
const void* arraystart,
size_t elements,size_t membersize);
range_arrayinbuf checks that the array starting at
\fIarraystart\fR consisting of \fIelements\fR members of size
\fImembersize\fR each starts and ends within the buffer
If the array is 0-terminated and you don't know the length beforehand,
use range_strinbuf, range_str2inbuf or range_str4inbuf instead.
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.