[PATCH 2/4] ubiattach command: Properly check return values

Sascha Hauer s.hauer at pengutronix.de
Tue Jul 23 06:28:00 EDT 2013


- print error when ioctl fails, not a combined message when one of
  ioctl or ubi_attach_mtd_dev failed.
- ubi_attach_mtd_dev() returns the ubi number for success, not 0, so
  check for ret < 0 to detect errors.

Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
---
 commands/ubi.c | 13 +++++++++----
 1 file changed, 9 insertions(+), 4 deletions(-)

diff --git a/commands/ubi.c b/commands/ubi.c
index 854ea83..5b57d0b 100644
--- a/commands/ubi.c
+++ b/commands/ubi.c
@@ -71,12 +71,17 @@ static int do_ubiattach(int argc, char *argv[])
 	}
 
 	ret = ioctl(fd, MEMGETINFO, &user);
-	if (!ret)
-		ret = ubi_attach_mtd_dev(user.mtd, UBI_DEV_NUM_AUTO, 0);
+	if (ret) {
+		printf("MEMGETINFO failed: %s\n", strerror(-ret));
+		goto err;
+	}
 
-	if (ret)
+	ret = ubi_attach_mtd_dev(user.mtd, UBI_DEV_NUM_AUTO, 0);
+	if (ret < 0)
 		printf("failed to attach: %s\n", strerror(-ret));
-
+	else
+		ret = 0;
+err:
 	close(fd);
 
 	return ret ? 1 : 0;
-- 
1.8.3.2




More information about the barebox mailing list