2022-01-05 21:25:41 +01:00
|
|
|
#include <stdio.h>
|
|
|
|
#include <string.h>
|
|
|
|
#include "fileutil.h"
|
|
|
|
|
|
|
|
size_t fread(void *data, size_t membsize, size_t nmemb, FILE *fp)
|
|
|
|
{
|
2022-01-12 10:20:12 +01:00
|
|
|
size_t request_size;
|
|
|
|
if(__builtin_umul_overflow(membsize, nmemb, &request_size)) {
|
2022-01-05 21:25:41 +01:00
|
|
|
fp->error = 1;
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
2022-01-13 21:21:23 +01:00
|
|
|
ssize_t read_size = __fp_fread2(fp, data, request_size, -1);
|
|
|
|
return (read_size < 0) ? 0 : read_size;
|
2022-01-05 21:25:41 +01:00
|
|
|
}
|