Add a local variable and check return values. Fixes build warnings like these: kexec/fs2dt.c: warning: ignoring return value of ?read? Signed-off-by: Geoff Levand <geoff at infradead.org> for Huawei, Linaro --- kexec/fs2dt.c | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/kexec/fs2dt.c b/kexec/fs2dt.c index 1f5b0cf..50e173e 100644 --- a/kexec/fs2dt.c +++ b/kexec/fs2dt.c @@ -555,6 +555,7 @@ static void putnode(void) /* Add cmdline to the second kernel. Check to see if the new * cmdline has a root=. If not, use the old root= cmdline. */ if (!strcmp(basename,"chosen/")) { + size_t result; size_t cmd_len = 0; char *param = NULL; char filename[MAXPATH]; @@ -636,8 +637,13 @@ static void putnode(void) close(fd); goto no_debug; } - read(fd, buff, statbuf.st_size); + result = read(fd, buff, statbuf.st_size); close(fd); + if (result <= 0) { + printf("Unable to stat %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); @@ -659,8 +665,8 @@ static void putnode(void) close(fd); goto no_debug; } - read(fd, buff, statbuf.st_size); - if (!strcmp(buff, "hvterm1") || !strcmp(buff, "hvterm-protocol")) + result = read(fd, buff, statbuf.st_size); + if (result && (!strcmp(buff, "hvterm1") || !strcmp(buff, "hvterm-protocol"))) my_debug = 1; close(fd); free(buff); -- 1.8.1.2