mirror of
https://github.com/vanhoefm/fragattacks.git
synced 2025-02-17 17:43:06 -05:00
Add sanity checks for fseek and ftell return values
In theory, these calls could fail, but it is not really likely to happen in practice in the use case here. Anyway, check that they do not return an error before accepting the length of the file.
This commit is contained in:
parent
4a26df7107
commit
fe655a8402
@ -315,14 +315,21 @@ char * os_readfile(const char *name, size_t *len)
|
||||
{
|
||||
FILE *f;
|
||||
char *buf;
|
||||
long pos;
|
||||
|
||||
f = fopen(name, "rb");
|
||||
if (f == NULL)
|
||||
return NULL;
|
||||
|
||||
fseek(f, 0, SEEK_END);
|
||||
*len = ftell(f);
|
||||
fseek(f, 0, SEEK_SET);
|
||||
if (fseek(f, 0, SEEK_END) < 0 || (pos = ftell(f)) < 0) {
|
||||
fclose(f);
|
||||
return NULL;
|
||||
}
|
||||
*len = pos;
|
||||
if (fseek(f, 0, SEEK_SET) < 0) {
|
||||
fclose(f);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
buf = os_malloc(*len);
|
||||
if (buf == NULL) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user