From 89c73b5a746088fb303f2f69c7107b9e2d386a79 Mon Sep 17 00:00:00 2001 From: Nikolai Artemiev Date: Tue, 11 Jan 2022 18:26:48 +1100 Subject: linux_mtd: check ioctl() return value properly Make the linux_mtd driver treat any negative return value from the MEMERASE ioctl as an error. Previously it only treated -1 as an error. BUG=b:213561594,b:210973586,b:182223106 BRANCH=none TEST=builds Change-Id: I40cfbdee2ab608fbe6c17d9cac6ec53ff224d9a4 Signed-off-by: Nikolai Artemiev Reviewed-on: https://review.coreboot.org/c/flashrom/+/60996 Tested-by: build bot (Jenkins) Reviewed-by: Angel Pons Reviewed-by: Edward O'Callaghan --- linux_mtd.c | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/linux_mtd.c b/linux_mtd.c index 04eccde27..9d80a51a0 100644 --- a/linux_mtd.c +++ b/linux_mtd.c @@ -286,9 +286,11 @@ static int linux_mtd_erase(struct flashctx *flash, .length = data->erasesize, }; - if (ioctl(fileno(data->dev_fp), MEMERASE, &erase_info) == -1) { - msg_perr("%s: ioctl: %s\n", __func__, strerror(errno)); - return 1; + int ret = ioctl(fileno(data->dev_fp), MEMERASE, &erase_info); + if (ret < 0) { + msg_perr("%s: MEMERASE ioctl call returned %d, error: %s\n", + __func__, ret, strerror(errno)); + return 1; } } -- cgit v1.2.3