On 2016-08-04 21:28, Ralf Ramsauer wrote:
> Check if file size is not zero and check the return value of close() as
> it might fail, though it's very unlikely.
> 
> Signed-off-by: Ralf Ramsauer <[email protected]>
> ---
>  tools/jailhouse.c | 10 +++++++++-
>  1 file changed, 9 insertions(+), 1 deletion(-)
> 
> diff --git a/tools/jailhouse.c b/tools/jailhouse.c
> index 5bf9b0f..8c7783c 100644
> --- a/tools/jailhouse.c
> +++ b/tools/jailhouse.c
> @@ -156,6 +156,11 @@ static void *read_file(const char *name, size_t *size)
>               exit(1);
>       }
>  
> +     if (stat.st_size == 0) {
> +             fprintf(stderr, "reading empty file: %s\n", name);
> +             exit(1);
> +     }
> +
>       buffer = malloc(stat.st_size);
>       if (!buffer) {
>               fprintf(stderr, "insufficient memory\n");
> @@ -167,7 +172,10 @@ static void *read_file(const char *name, size_t *size)
>               exit(1);
>       }
>  
> -     close(fd);
> +     if (close(fd)) {
> +             fprintf(stderr, "closing %s: %s\n", name, strerror(errno));
> +             exit(1);
> +     }
>  
>       if (size)
>               *size = stat.st_size;
> 

Two changes, two patches - but none of them is needed or might even be
harmful (what if some user script intentionally inject an empty file as
place holder?).

Jan

-- 
You received this message because you are subscribed to the Google Groups 
"Jailhouse" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to