[BusyBox 0001302]: busybox prefers internal applets even if !STANDALONE_SHELL
bugs at busybox.net
bugs at busybox.net
Thu Apr 5 21:10:26 UTC 2007
The following issue has been CLOSED
======================================================================
http://busybox.net/bugs/view.php?id=1302
======================================================================
Reported By: Michael Tokarev
Assigned To: BusyBox
======================================================================
Project: BusyBox
Issue ID: 1302
Category: Other
Reproducibility: always
Severity: minor
Priority: normal
Status: closed
Resolution: open
Fixed in Version:
======================================================================
Date Submitted: 04-05-2007 00:55 PDT
Last Modified: 04-05-2007 14:10 PDT
======================================================================
Summary: busybox prefers internal applets even if
!STANDALONE_SHELL
Description:
Since about 1.4.0, busybox prefers internal applets even if not configured
to do so. This results in not-so-fun stuff like:
$ busybox ash
$ chmod --reference=x y
chmod: unrecognized option `--reference=x'
BusyBox v1.4.1 (2007-02-14 14:22:15 MSK) multi-call binary
No help available.
$ /bin/chmod --reference=x y
$ (this one works)
I looked into sources, and see that usage of tryexec() in shell/ash.c is
quite messed up (up to 1.4.2) - it has been partially
rewritten/reorganized. And I don't quite understand what it supposed to
work like in the first place.
Speaking of this 'prefer internal applets' thing, I wonder if we can do
two things.
First, how about searching the executable normally, and stat()'ing the
found file to see if it's our executable - if yes, we can safely fork()
our own process, and not execute anything. And IF not found in $PATH, try
to search our applet list. I.e., something in the middle of
STANDALONE_SHELL and !STANDALONE_SHELL.
And second, how about marking whenever a given applet is "safe" in the
applet list, and not in ash? So that other shells (by the way, why there
are so many of them??) will benefit. Note that the list in ash.c is far
from complete - there are many more "safe" applets than that.
======================================================================
----------------------------------------------------------------------
vda - 04-05-07 14:10
----------------------------------------------------------------------
So it fixed in 1.4.2, yet you still created bug record in the database.
Why? The purpose of the database is to track UNFIXED problems.
Discussions are best directed to mailing list, not bugzilla. Please
continue there.
Issue History
Date Modified Username Field Change
======================================================================
04-05-07 00:55 Michael TokarevNew Issue
04-05-07 00:55 Michael TokarevStatus new => assigned
04-05-07 00:55 Michael TokarevAssigned To => BusyBox
04-05-07 14:10 vda Note Added: 0002298
04-05-07 14:10 vda Status assigned => closed
======================================================================
More information about the busybox-cvs
mailing list