[Mesa-dev] [PATCH v4 5/5] intel/tools: make sure the binary file is properly read

andrey simiklit asimiklit.work at gmail.com
Fri Nov 30 13:18:49 UTC 2018


Hello,

Could you please take a look on this v4 if it is possible?

Thanks,
Andrii.

On Wed, Nov 14, 2018 at 6:30 PM <asimiklit.work at gmail.com> wrote:

> From: Andrii Simiklit <andrii.simiklit at globallogic.com>
>
> 1. tools/i965_disasm.c:58:4: warning:
>      ignoring return value of ‘fread’,
>      declared with attribute warn_unused_result
>      fread(assembly, *end, 1, fp);
>
> v2: Fixed incorrect return value check.
>        ( Eric Engestrom <eric.engestrom at intel.com> )
>
> v3: Zero size file check placed before fread with exit()
>        ( Eric Engestrom <eric.engestrom at intel.com> )
>
> v4: - Title is changed.
>     - The 'size' variable was moved to top of a function scope.
>     - The assertion was replaced by the proper error handling.
>     - The error message on a caller side was fixed.
>        ( Eric Engestrom <eric.engestrom at intel.com> )
>
> Signed-off-by: Andrii Simiklit <andrii.simiklit at globallogic.com>
> ---
>  src/intel/tools/i965_disasm.c | 16 +++++++++++++---
>  1 file changed, 13 insertions(+), 3 deletions(-)
>
> diff --git a/src/intel/tools/i965_disasm.c b/src/intel/tools/i965_disasm.c
> index 73a6760fc1..0efbdab706 100644
> --- a/src/intel/tools/i965_disasm.c
> +++ b/src/intel/tools/i965_disasm.c
> @@ -47,17 +47,23 @@ i965_disasm_get_file_size(FILE *fp)
>  static void *
>  i965_disasm_read_binary(FILE *fp, size_t *end)
>  {
> +   size_t size;
>     void *assembly;
>
>     *end = i965_disasm_get_file_size(fp);
> +   if (!*end)
> +      return NULL;
>
>     assembly = malloc(*end + 1);
>     if (assembly == NULL)
>        return NULL;
>
> -   fread(assembly, *end, 1, fp);
> +   size = fread(assembly, *end, 1, fp);
>     fclose(fp);
> -
> +   if (!size) {
> +      free(assembly);
> +      return NULL;
> +   }
>     return assembly;
>  }
>
> @@ -167,7 +173,11 @@ int main(int argc, char *argv[])
>
>     assembly = i965_disasm_read_binary(fp, &end);
>     if (!assembly) {
> -      fprintf(stderr, "Unable to allocate buffer to read binary file\n");
> +      if(end)
> +        fprintf(stderr, "Unable to allocate buffer to read binary
> file\n");
> +      else
> +        fprintf(stderr, "Input file is empty\n");
> +

       exit(EXIT_FAILURE);
>     }
>
> --
> 2.17.1
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.freedesktop.org/archives/mesa-dev/attachments/20181130/06c0e62f/attachment.html>


More information about the mesa-dev mailing list