Do not segfault if PATH is unset.
This commit is contained in:
parent
ba552523fa
commit
a3181dd833
@ -38,15 +38,16 @@ extern int which_main(int argc, char **argv)
|
||||
argc--;
|
||||
|
||||
path_list = getenv("PATH");
|
||||
if (!path_list)
|
||||
path_list = "/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin";
|
||||
|
||||
/* Replace colons with zeros in path_parsed and count them */
|
||||
for(i=strlen(path_list); i > 0; i--)
|
||||
if (path_list[i]==':') {
|
||||
path_list[i]=0;
|
||||
count++;
|
||||
}
|
||||
if (path_list != NULL) {
|
||||
for(i=strlen(path_list); i > 0; i--)
|
||||
if (path_list[i]==':') {
|
||||
path_list[i]=0;
|
||||
count++;
|
||||
}
|
||||
} else {
|
||||
path_list = "/bin\0/sbin\0/usr/bin\0/usr/sbin\0/usr/local/bin";
|
||||
count = 5;
|
||||
}
|
||||
|
||||
while(argc-- > 0) {
|
||||
path_n = path_list;
|
||||
|
8
testsuite/which/which-uses-default-path
Normal file
8
testsuite/which/which-uses-default-path
Normal file
@ -0,0 +1,8 @@
|
||||
BUSYBOX=$(type -p busybox)
|
||||
echo $BUSYBOX
|
||||
SAVED_PATH=$PATH
|
||||
unset PATH
|
||||
$BUSYBOX which ls
|
||||
STATUS=$?
|
||||
export PATH=$SAVED_PATH
|
||||
return $STATUS
|
Loading…
Reference in New Issue
Block a user