]> git.proxmox.com Git - mirror_ovs.git/commitdiff
ovs-ctl: Prepend OVS binary directories to PATH.
authorFlavio Leitner <fbl@sysclose.org>
Wed, 28 Oct 2020 19:47:52 +0000 (16:47 -0300)
committerIlya Maximets <i.maximets@ovn.org>
Wed, 27 Jan 2021 12:26:07 +0000 (13:26 +0100)
The inclusion of LSB functions in ovs-lib resets $PATH to
system's default. Then ovs-ctl appends missing directories
including the OVS default ones $sbindir and $bindir.

The problem is that the wrong binaries can be used if they
are available in the system's default locations because of
the PATH wrong order. The same issue happens if one changes
$OVS_BINDIR or $OVS_SBINDIR variables.

The solution is to prepend those directories if they are not
already in PATH.

Reported-by: Mark Gray <mark.d.gray@redhat.com>
Signed-off-by: Flavio Leitner <fbl@sysclose.org>
Acked-by: Mark Gray <mark.d.gray@redhat.com>
Acked-by: Paolo Valerio <pvalerio@redhat.com>
Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
utilities/ovs-ctl.in

index d71c34e69106d04faa4ea120ac3468cdfbdbf986..be3aa083babf3ab40d675ff4ef29fa1849e28022 100644 (file)
@@ -22,7 +22,11 @@ esac
 for dir in "$sbindir" "$bindir" /sbin /bin /usr/sbin /usr/bin; do
     case :$PATH: in
         *:$dir:*) ;;
-        *) PATH=$PATH:$dir ;;
+        *)
+        case $dir in
+            $sbindir | $bindir) PATH=$dir:$PATH ;;
+            *) PATH=$PATH:$dir ;;
+        esac
     esac
 done