From a3181dd833970b1aa99087c3e3647387116547f0 Mon Sep 17 00:00:00 2001 From: Matt Kraai Date: Mon, 14 Jan 2002 18:30:10 +0000 Subject: Do not segfault if PATH is unset. --- findutils/which.c | 19 ++++++++++--------- testsuite/which/which-uses-default-path | 8 ++++++++ 2 files changed, 18 insertions(+), 9 deletions(-) create mode 100644 testsuite/which/which-uses-default-path diff --git a/findutils/which.c b/findutils/which.c index eec5fdbfb..b2af5a8ea 100644 --- a/findutils/which.c +++ b/findutils/which.c @@ -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; diff --git a/testsuite/which/which-uses-default-path b/testsuite/which/which-uses-default-path new file mode 100644 index 000000000..e2a2f3893 --- /dev/null +++ b/testsuite/which/which-uses-default-path @@ -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 -- cgit v1.2.3