16 lines
353 B
C
16 lines
353 B
C
#include <stdio.h>
|
|
#include <string.h>
|
|
#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;
|
|
}
|