[U-Boot] [PATCH] common, hush [BUG]: exit not work in hush shell

Heiko Schocher hs at denx.de
Sun Sep 16 07:20:32 CEST 2012


Hello Wolfgang,

On 14.09.2012 20:31, Wolfgang Denk wrote:
> Dear Heiko Schocher,
>
> In message<1347645856-3326-1-git-send-email-hs at denx.de>  you wrote:
>> running the following script in u-boot:
>> setenv error 'if true; then
>>          echo **** ERROR ****
>>          exit;
>> fi'
>
> I think I once tried to fix this, too.
>
> See here:
> http://article.gmane.org/gmane.comp.boot-loaders.u-boot/94660
> http://article.gmane.org/gmane.comp.boot-loaders.u-boot/94661
>
> Later, I rejected both these patches (and several other, unpublished
> versions I came up with during testing), because none of these worked

I can understand exactly how you feel... I had also several patches...

> for all tests really reliable.

Do you still have this test somewhere?

>>   	rcode = source (addr, fit_uname);
>> +	if (rcode == -2) {
>> +		debug("Hit exit in script\n");
>> +		rcode = 0;
>> +	}
>
> Hm... Note that "exit" can take an argment, which should be reflected
> in the return code - I mean, would it not be wrong to reurn 0 if the
> user has "exit 1" in his script?

Oh, Ok, this is a killing argument for this patch!

> Please make sure to test this extensively.  When I was trying to fix a
> few similar issues with hush, I quickly gave up because I decided it
> would be an easier (and more promising) undertaking to update the whole
> hush code to a more recent version of hush.

Hmm... Okay, so I have two options:

- fix "exit" with arguments
- update to a recent version of hush (where is the current code from?)
   But I have the gut feeling, that the problem is not in the original
   code, but in the u-boot adaptions, as the code in hush.c has a lot
   of "#ifndef __U_BOOT__" ...

bye,
Heiko
-- 
DENX Software Engineering GmbH,     MD: Wolfgang Denk & Detlev Zundel
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany


More information about the U-Boot mailing list