Fix full pathname condition in find_library
authorSergey Fionov <fionov@gmail.com>
Sat, 1 Aug 2009 07:52:16 +0000 (11:52 +0400)
committerHarald Hoyer <harald@redhat.com>
Tue, 4 Aug 2009 14:21:58 +0000 (16:21 +0200)
Hello,

Now a fact that the path is full is checked by
[[ -x $1 ]]

But if the working directory is /bin or a directory with a file named
"mount",
this condition will be met for "inst mount", and "mount" will not be copied
into initrd at all.

dracut-functions

index d4caacf..0af93e2 100755 (executable)
@@ -83,7 +83,7 @@ inst_library() {
 # search in the usual places to find the binary.
 find_binary() {
     local binpath="/bin /sbin /usr/bin /usr/sbin" p
-    [[ -x $1 ]] && { echo $1; return 0; }
+    [[ -z ${1##/*} && -x $1 ]] && { echo $1; return 0; } 
     for p in $binpath; do
        [[ -x $p/$1 ]] && { echo "$p/$1"; return 0; }
     done