range_bufinbuf(3) range check for buf in buffer

SYNTAX

#include <rangecheck.h>

int range_bufinbuf(const void* buf1,size_t len1,
                   const void* buf2,size_t len2);

DESCRIPTION

range_bufinbuf checks that the buffer buf2[0..len2-1] lies entirely in buf1[0..len1].

If the buffer is 0-terminated and you don't know the length beforehand, use range_strinbuf, range_str2inbuf or range_str4inbuf instead.

RETURN VALUE

If one of the buffers is implausible (buf is NULL or buf+len has an integer overflow), return 0.

If the buf2[0..len2-1] lies before or after buf1[0..len1-1], return 0.

Otherwise, return 1.