[1/3] ubiformat: process command line arguments first

Message ID 20180514085325.6793-2-david.oberhollenzer@sigma-star.at
State Accepted
Delegated to: David Oberhollenzer
Headers show
Series
  • mtd-utils: miscellaneous fixes
Related show

Commit Message

David Oberhollenzer May 14, 2018, 8:53 a.m.
If libmtd_open fails, the program always exists with failure status
and prints "MTD subsystem is not present".

Even `ubiformat --help` produces the same result, which is definitely
undesired.

This patch moves command line option processing first to get the desired
behavior.

Signed-off-by: David Oberhollenzer <david.oberhollenzer@sigma-star.at>
---
 ubi-utils/ubiformat.c | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

Patch

diff --git a/ubi-utils/ubiformat.c b/ubi-utils/ubiformat.c
index c38b9b4..694ab4c 100644
--- a/ubi-utils/ubiformat.c
+++ b/ubi-utils/ubiformat.c
@@ -692,13 +692,14 @@  int main(int argc, char * const argv[])
 	struct ubigen_info ui;
 	struct ubi_scan_info *si;
 
-	libmtd = libmtd_open();
-	if (!libmtd)
-		return errmsg("MTD subsystem is not present");
 
 	err = parse_opt(argc, argv);
 	if (err)
-		goto out_close_mtd;
+		return -1;
+
+	libmtd = libmtd_open();
+	if (!libmtd)
+		return errmsg("MTD subsystem is not present");
 
 	err = mtd_get_info(libmtd, &mtd_info);
 	if (err) {