From 1c0c8fd9da34d29d549803f3ddff9a68dd95dfed Mon Sep 17 00:00:00 2001 From: Jacob Garber Date: Mon, 12 Aug 2019 14:14:40 -0600 Subject: linux_spi: Use fgets() to read buffer size Since fread() returns the number of bytes read, this currently will only check for errors if it returns 0 (i.e. the file was empty). However, it is possible for fread() to encounter an error after reading a few bytes, which this doesn't catch. Fix this by using fgets() instead, which will return NULL if EOF or an error is encountered, and is simpler anyway. Change-Id: I4f37c70e97149b87c6344e63a57d11ddde7638c4 Signed-off-by: Jacob Garber Found-by: Coverity CID 1403824 Reviewed-on: https://review.coreboot.org/c/flashrom/+/34848 Tested-by: build bot (Jenkins) Reviewed-by: David Hendricks --- linux_spi.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/linux_spi.c b/linux_spi.c index de09e607b..e3d7486ee 100644 --- a/linux_spi.c +++ b/linux_spi.c @@ -137,8 +137,7 @@ int linux_spi_init(void) } char buf[10]; - memset(buf, 0, sizeof(buf)); - if (!fread(buf, 1, sizeof(buf) - 1, fp)) { + if (!fgets(buf, sizeof(buf), fp)) { if (feof(fp)) msg_pwarn("Cannot read %s: file is empty.\n", BUF_SIZE_FROM_SYSFS); else -- cgit v1.2.3