intel/tools: handle ftell errors
authorMarcin Ślusarz <marcin.slusarz@intel.com>
Wed, 9 Sep 2020 16:48:16 +0000 (18:48 +0200)
committerMarge Bot <eric+marge@anholt.net>
Thu, 10 Sep 2020 12:16:58 +0000 (12:16 +0000)
Found by Coverity, as "argument cannot be negative", referring to
fread's 2nd argument.

Signed-off-by: Marcin Ślusarz <marcin.slusarz@intel.com>
Reviewed-by: Lionel Landwerlin <lionel.g.landwerlin@intel.com>
Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/6667>

src/intel/tools/i965_disasm.c

index 401ca86..3c8eaff 100644 (file)
@@ -38,10 +38,10 @@ enum opt_input_type {
 static enum opt_input_type input_type = OPT_INPUT_BINARY;
 
 /* Return size of file in bytes pointed by fp */
-static size_t
+static long
 i965_disasm_get_file_size(FILE *fp)
 {
-   size_t size;
+   long size;
 
    fseek(fp, 0L, SEEK_END);
    size = ftell(fp);
@@ -93,7 +93,11 @@ i965_disasm_read_binary(FILE *fp, size_t *end)
    size_t size;
    void *assembly;
 
-   *end = i965_disasm_get_file_size(fp);
+   long sz = i965_disasm_get_file_size(fp);
+   if (sz < 0)
+      return NULL;
+
+   *end = (size_t)sz;
    if (!*end)
       return NULL;