Skip to content
Permalink
Browse files

firmware-utils: mkdlinkfw: fix error handling

fread() doesn't set errno, ferror need to be used to check for errors.
While at it, check if we read the expect number of elements.

Signed-off-by: Mathias Kresin <dev@kresin.me>
  • Loading branch information...
mkresin committed Jan 5, 2019
1 parent e428b12 commit 0e78af22d95d91f7c2fdfc66fac993c6c5d349d8
Showing with 3 additions and 3 deletions.
  1. +3 −3 tools/firmware-utils/src/mkdlinkfw-lib.c
@@ -97,16 +97,16 @@ int read_to_buf(const struct file_info *fdata, char *buf)
{
FILE *f;
int ret = EXIT_FAILURE;
size_t read;

f = fopen(fdata->file_name, "r");
if (f == NULL) {
ERRS("could not open \"%s\" for reading", fdata->file_name);
goto out;
}

errno = 0;
fread(buf, fdata->file_size, 1, f);
if (errno != 0) {
read = fread(buf, fdata->file_size, 1, f);
if (ferror(f) || read != 1) {
ERRS("unable to read from file \"%s\"", fdata->file_name);
goto out_close;
}

0 comments on commit 0e78af2

Please sign in to comment.
You can’t perform that action at this time.