#include #include #include "fileutil.h" size_t fread(void *data, size_t membsize, size_t nmemb, FILE *fp) { size_t request_size; if(__builtin_umul_overflow(membsize, nmemb, &request_size)) { fp->error = 1; return 0; } ssize_t read_size = __fp_fread2(fp, data, request_size, -1); return (read_size < 0) ? 0 : read_size; }