From: Guodong Xu <[email protected]>

=> tlv_eeprom dev
Unhandled exception: Load access fault
EPC: 000000007ffb351a RA: 000000007ff7c302 TVAL: 0000000000000000
EPC: 000000000024b51a RA: 0000000000214302 reloc adjusted

SP:  000000007ef3ec90 GP:  000000007ef48e40 TP:  0000000000000000
T0:  000000007ef3eda0 T1:  0000000000000000 T2:  0000000000000000
S0:  0000000000000002 S1:  000000007f05c0a0 A0:  0000000000000000
A1:  0000000000000000 A2:  0000000000000000 A3:  00000000d4017000
A4:  0000000000000002 A5:  00000000d4017000 A6:  0000000000000001
A7:  0000000000000000 S2:  0000000000000001 S3:  000000007f05c0a0
S4:  0000000000000002 S5:  000000007fffbbec S6:  0000000000000000
S7:  000000007f05c080 S8:  000000007f05c0a0 S9:  0000000000000000
S10: 0000000000000000 S11: 000000007f05afa0 T3:  0000000000000005
T4:  0000000000000009 T5:  0000000000000006 T6:  000000007ef3ed80

Code: 0007 3513 0015 70a2 7402 64e2 6145 8082 (4683 0005)

Command "tlv_eeprom dev" should not access argv[2]. argv[2] should be
only accessed by command "tlv_eeprom dev [dev]" command.

So add a guard to prevent this invalid access.

Signed-off-by: Guodong Xu <[email protected]>
Signed-off-by: Raymond Mao <[email protected]>
---
 cmd/tlv_eeprom.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/cmd/tlv_eeprom.c b/cmd/tlv_eeprom.c
index 3127660dd9e..b2b0b5a6fab 100644
--- a/cmd/tlv_eeprom.c
+++ b/cmd/tlv_eeprom.c
@@ -450,7 +450,7 @@ int do_tlv_eeprom(struct cmd_tbl *cmdtp, int flag, int 
argc, char *const argv[])
        cmd = argv[1][0];
 
        // select device
-       if (cmd == 'd') {
+       if (cmd == 'd' && argc > 2) {
                 /* 'dev' command */
                unsigned int devnum;
 
-- 
2.25.1

Reply via email to