[PATCH] mem md: make md -s /dev/something work again

Sascha Hauer s.hauer at pengutronix.de
Tue Jul 31 15:45:42 EDT 2012


Since

|commit d22b85a203aea20a2b2618f5f457fe96c502868d
|Author: Sascha Hauer <s.hauer at pengutronix.de>
|Date:   Wed Jul 4 23:41:13 2012 +0200
|
|    mem md: bail out without arguments
|
|    Without arguments the 'md' command defaults to show address 0 which
|    likely results in a NULL pointer exception, so only three keystrokes
|    are necessary to crash barebox. Show usage instead if 'md' is invoked
|    without arguments, so that it at least requires an address to be given
|    to crash barebox. This increases the stability of barebox by 66%. Hurray!

barebox does not crash any longer when a plain 'md' without additional arguments
is exectuted. However, doing a 'md -s /dev/nor0' was a standard usecase which now
does not work anymore.

Signed-off-by: Sascha Hauer <s.hauer at pengutronix.de>
---
 commands/mem.c |    5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/commands/mem.c b/commands/mem.c
index 5322def..cc94062 100644
--- a/commands/mem.c
+++ b/commands/mem.c
@@ -170,6 +170,9 @@ static int do_mem_md(int argc, char *argv[])
 	char *filename = DEVMEM;
 	int mode = O_RWSIZE_4;
 
+	if (argc < 2)
+		return COMMAND_ERROR_USAGE;
+
 	if (mem_parse_options(argc, argv, "bwls:", &mode, &filename, NULL) < 0)
 		return 1;
 
@@ -180,8 +183,6 @@ static int do_mem_md(int argc, char *argv[])
 		}
 		if (size == ~0)
 			size = 0x100;
-	} else {
-		return COMMAND_ERROR_USAGE;
 	}
 
 	fd = open_and_lseek(filename, mode | O_RDONLY, start);
-- 
1.7.10.4




More information about the barebox mailing list