You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
33 lines
1.0 KiB
Groff
33 lines
1.0 KiB
Groff
.TH range_arrayinbuf 3
|
|
.SH NAME
|
|
range_arrayinbuf \- range check for array in buffer
|
|
.SH SYNTAX
|
|
.B #include <libowfat/rangecheck.h>
|
|
|
|
int \fBrange_arrayinbuf\fR(const void* buf,size_t len,
|
|
const void* arraystart,
|
|
size_t elements,size_t membersize);
|
|
|
|
.SH DESCRIPTION
|
|
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
|
|
\fIbuf\fR[0..\fIlen\fR-1].
|
|
|
|
If the array is 0-terminated and you don't know the length beforehand,
|
|
use range_strinbuf, range_str2inbuf or range_str4inbuf instead.
|
|
.SH "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.
|
|
.SH "SEE ALSO"
|
|
rangecheck(3)
|