xpp: better error checking (echo_loader)
authorOron Peled <oron.peled@xorcom.com>
Sun, 11 May 2014 15:48:07 +0000 (11:48 -0400)
committerTzafrir Cohen <tzafrir.cohen@xorcom.com>
Sun, 11 May 2014 16:07:40 +0000 (19:07 +0300)
Signed-off-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com>

xpp/echo_loader.c

index c81147f..2291214 100644 (file)
@@ -362,7 +362,7 @@ int load_file(char *filename, unsigned char **ppBuf, UINT32 *pLen)
        DBG("Loading %s file...\n", filename);
        pFile = fopen(filename, "rb");
        if (pFile == NULL) {
-               ERR("fopen\n");
+               ERR("fopen: %s\n", strerror(errno));
                return -ENODEV;
        }
 
@@ -378,7 +378,11 @@ int load_file(char *filename, unsigned char **ppBuf, UINT32 *pLen)
        } else {
                DBG("allocated mem for pbyFileData\n");
        }
-       fread(pbyFileData, 1, *pLen, pFile);
+       if (fread(pbyFileData, 1, *pLen, pFile) != *pLen) {
+               fclose(pFile);
+               ERR("fread: %s\n", strerror(errno));
+               return -ENODEV;
+       }
        fclose(pFile);
        DBG("Successful loading %s file into memory "
                "(size = %d, DUMP: first = %02X %02X, last = %02X %02X)\n",