Range check for buf in buffer
#include <rangecheck.h>
int range_bufinbuf(const void* buf1,size_t len1,
const void* buf2,size_t len2);
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.
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.