#include <stdio.h>
#include <string.h>
#include <stdlib.h>
int check_bytes(const char * const data, size_t length, const char val)
{
if(length == 0) return 1;
if(*data != val) return 0;
return memcmp(data
, data
+1, length
-1) ? 0 : 1; }
int main(void) {
const size_t LEN = 12345;
char * data0
= calloc(1, LEN
); char * data1
= calloc(1, LEN
); data1[1234] = 5;
printf("Data 0 should be all-0: %s\n", check_bytes
(data0
, LEN
, 0) ? "yes": "no"); printf("Data 1 should NOT be all-0: %s\n", check_bytes
(data1
, LEN
, 0) ? "yes": "no"); return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KI2luY2x1ZGUgPHN0ZGxpYi5oPgoKaW50IGNoZWNrX2J5dGVzKGNvbnN0IGNoYXIgKiBjb25zdCBkYXRhLCBzaXplX3QgbGVuZ3RoLCBjb25zdCBjaGFyIHZhbCkKewogICAgaWYobGVuZ3RoID09IDApIHJldHVybiAxOwogICAgaWYoKmRhdGEgIT0gdmFsKSByZXR1cm4gMDsKICAgIHJldHVybiBtZW1jbXAoZGF0YSwgZGF0YSsxLCBsZW5ndGgtMSkgPyAwIDogMTsKfQoKaW50IG1haW4odm9pZCkgewoJY29uc3Qgc2l6ZV90IExFTiA9IDEyMzQ1OwoJY2hhciAqIGRhdGEwID0gY2FsbG9jKDEsIExFTik7CgljaGFyICogZGF0YTEgPSBjYWxsb2MoMSwgTEVOKTsKCWRhdGExWzEyMzRdID0gNTsKCQoJcHJpbnRmKCJEYXRhIDAgc2hvdWxkIGJlIGFsbC0wOiAlc1xuIiwgY2hlY2tfYnl0ZXMoZGF0YTAsIExFTiwgMCkgPyAieWVzIjogIm5vIik7CglwcmludGYoIkRhdGEgMSBzaG91bGQgTk9UIGJlIGFsbC0wOiAlc1xuIiwgY2hlY2tfYnl0ZXMoZGF0YTEsIExFTiwgMCkgPyAieWVzIjogIm5vIik7CglyZXR1cm4gMDsKfQo=