diff options
Diffstat (limited to 'common/cmd_itest.c')
| -rw-r--r-- | common/cmd_itest.c | 9 | 
1 files changed, 7 insertions, 2 deletions
| diff --git a/common/cmd_itest.c b/common/cmd_itest.c index 5b301bf5a..58c5e7b3b 100644 --- a/common/cmd_itest.c +++ b/common/cmd_itest.c @@ -66,12 +66,17 @@ op_tbl_t op_table [] = {  static long evalexp(char *s, int w)  { -	long l, *p; +	long l = 0; +	long *p;  	/* if the parameter starts with a * then assume is a pointer to the value we want */  	if (s[0] == '*') {  		p = (long *)simple_strtoul(&s[1], NULL, 16); -		l = *p; +		switch (w) { +		case 1: return((long)(*(unsigned char *)p)); +		case 2: return((long)(*(unsigned short *)p)); +		case 4: return(*p); +		}  	} else {  		l = simple_strtoul(s, NULL, 16);  	} |