On Thu, Oct 03, 2013 at 08:19:34PM +0000, Geoff Levand wrote:
> The putnode() routine in fs2dt.c was not checking for errors
> returned from calls to read().  Add checks for these errors
> and abort the setup of printing from purgatory if the checks
> fail.
> 
> Signed-off-by: Geoff Levand <[email protected]>
> ---
>  kexec/fs2dt.c | 8 +++++++-
>  1 file changed, 7 insertions(+), 1 deletion(-)

Thanks, applied.

> 
> diff --git a/kexec/fs2dt.c b/kexec/fs2dt.c
> index 98d6cb4..242a15e 100644
> --- a/kexec/fs2dt.c
> +++ b/kexec/fs2dt.c
> @@ -639,6 +639,11 @@ static void putnode(void)
>               }
>               result = read(fd, buff, statbuf.st_size);
>               close(fd);
> +             if (result <= 0) {
> +                     printf("Unable to read %s, printing from purgatory is 
> diabled\n",
> +                                                                             
>                                 filename);
> +                     goto no_debug;
> +             }
>               strncpy(filename, "/proc/device-tree/", MAXPATH);
>               strncat(filename, buff, MAXPATH);
>               strncat(filename, "/compatible", MAXPATH);
> @@ -661,7 +666,8 @@ static void putnode(void)
>                       goto no_debug;
>               }
>               result = read(fd, buff, statbuf.st_size);
> -             if (!strcmp(buff, "hvterm1") || !strcmp(buff, 
> "hvterm-protocol"))
> +             if (result && (!strcmp(buff, "hvterm1")
> +                     || !strcmp(buff, "hvterm-protocol")))
>                       my_debug = 1;
>               close(fd);
>               free(buff);
> -- 
> 1.8.1.2
> 

_______________________________________________
kexec mailing list
[email protected]
http://lists.infradead.org/mailman/listinfo/kexec

Reply via email to