[OE-core] [PATCH 1/2] base-files: profile: Do not assume that the 'command' command exists

ChenQi Qi.Chen at windriver.com
Fri Oct 13 10:07:16 UTC 2017


On 10/13/2017 05:53 PM, ChenQi wrote:
> On 09/18/2017 09:56 PM, Mike Looijmans wrote:
>> On 18-09-17 15:24, Mike Looijmans wrote:
>>> On 18-09-17 15:08, Burton, Ross wrote:
>>>> On 18 September 2017 at 12:31, Mike Looijmans 
>>>> <mike.looijmans at topic.nl <mailto:mike.looijmans at topic.nl>> wrote:
>>>>
>>>>         This is basically the same change as I first sent a patch 
>>>> for in
>>>>         April, and
>>>>         last pinged this Friday... The only real difference is that 
>>>> this one
>>>>         misses
>>>>         passing error output from resize to /dev/null (which it 
>>>> should do to
>>>>         handle
>>>>         the case where tty exists, but resize does not).
>>>>
>>>>
>>>>     Yeah, indeed.
>>>>
>>>>
>>>> Apologies for missing that patch!
>>>>
>>>>     Other problem is that "resize" outputs shell script on stdout 
>>>> to be
>>>>     executed, so the proper "total" invokation would be:
>>>>
>>>>        /dev/tty[A-z]*) eval `resize 2>/dev/null` ;;
>>>>
>>>>     The "eval" part is missing in your version...
>>>>
>>>>
>>>> Who is going to submit the One True patch with all the fixes in?  I 
>>>> promise to merge it.
>>>
>>> I'll send the one ring, eh, patch, in a few minutes. I'll merge the 
>>> two into a single as well.
>>
>> On second thought, just use Peter's patch "as is".
>>
>> I've been experimenting with the "eval" part and it doesn't behave 
>> well. Tends to confuse minicom, create garbage, and in particular 
>> when run from "profile", it seems to result in counterproductive 
>> COLUMNS=0 and LINES=0.
>>
>> I'm actually wondering why the call to "resize" is being done at all. 
>> Just calling "resize" has no effect, since it outputs the results on 
>> stdout as shell script, and that is being discarded. Looking at the 
>> commit that introduced it:
>>
>
> Looking at the codes in busybox (console-tools/resize.c), I can see 
> that tcsetattr is actually called.
> The output is due to:
>
>     if (ENABLE_FEATURE_RESIZE_PRINT)
>         printf("COLUMNS=%d;LINES=%d;export COLUMNS LINES;\n",
>             w.ws_col, w.ws_row);
>
> I can confirm that calling 'resize' is needed. Otherwise, you might 
> get input wrapping on the same line when typing long commands.
>
> I just tried busybox init based system and I also met '-sh: command: 
> not found' error message.

Sorry for the noise. Just noticed that oe-core has enabled 'command' for 
busybox by default. It's my own busybox defconfig that hasn't enabled it.

Best Regards,
Chen Qi

> I think Peter's patch ([OE-core] [PATCHv2 1/1] base-files: profile: 
> Avoid using "command" to determine if programs exist) is correct.
>
> Best Regards,
> Chen Qi
>
>> cc6360f4c4d9 (base-files: set dynamic COLUMNS via resize command)
>>
>> that already has no effect whatsoever. See the man page for resize:
>> https://linux.die.net/man/1/resize
>>
>> I also would consider running some program's output as shell script a 
>> bit spooky, it looks like a security hole waiting to be exploited.
>>
>>
>>
>> Kind regards,
>>
>> Mike Looijmans
>> System Expert
>>
>> TOPIC Products
>> Materiaalweg 4, NL-5681 RJ Best
>> Postbus 440, NL-5680 AK Best
>> Telefoon: +31 (0) 499 33 69 79
>> E-mail: mike.looijmans at topicproducts.com
>> Website: www.topicproducts.com
>>
>> Please consider the environment before printing this e-mail
>>
>>
>>
>




More information about the Openembedded-core mailing list