]> git.ipfire.org Git - thirdparty/iproute2.git/commitdiff
configure: fix parsing issue on libbpf_dir option
authorAndrea Claudi <aclaudi@redhat.com>
Thu, 14 Oct 2021 08:50:50 +0000 (10:50 +0200)
committerDavid Ahern <dsahern@kernel.org>
Fri, 15 Oct 2021 23:56:53 +0000 (17:56 -0600)
configure is stuck in an endless loop if '--libbpf_dir' option is used
without a value:

$ ./configure --libbpf_dir
./configure: line 515: shift: 2: shift count out of range
./configure: line 515: shift: 2: shift count out of range
[...]

Fix it splitting 'shift 2' into two consecutive shifts, and making the
second one conditional to the number of remaining arguments.

A check is also provided after the while loop to verify the libbpf dir
exists; also, as LIBBPF_DIR does not have a default value, configure bails
out if the user does not specify a value after --libbpf_dir, thus avoiding
to produce an erroneous configuration.

Fixes: 7ae2585b865a ("configure: convert LIBBPF environment variables to command-line options")
Signed-off-by: Andrea Claudi <aclaudi@redhat.com>
Acked-by: Phil Sutter <phil@nwl.cc>
Signed-off-by: David Ahern <dsahern@kernel.org>
configure

index ea9051ab9a3c35a5c8ca329deb1497c371fb0e0a..0f3042069046feda23f92f191f6a78ee45f52dfc 100755 (executable)
--- a/configure
+++ b/configure
@@ -486,7 +486,7 @@ usage()
        cat <<EOF
 Usage: $0 [OPTIONS]
        --include_dir <dir>     Path to iproute2 include dir
-       --libbpf_dir            Path to libbpf DESTDIR
+       --libbpf_dir <dir>      Path to libbpf DESTDIR
        --libbpf_force          Enable/disable libbpf by force. Available options:
                                  on: require link against libbpf, quit config if no libbpf support
                                  off: disable libbpf probing
@@ -506,8 +506,9 @@ else
                                INCLUDE="$1"
                                [ "$#" -gt 0 ] && shift ;;
                        --libbpf_dir)
-                               LIBBPF_DIR="$2"
-                               shift 2 ;;
+                               shift
+                               LIBBPF_DIR="$1"
+                               [ "$#" -gt 0 ] && shift ;;
                        --libbpf_force)
                                if [ "$2" != 'on' ] && [ "$2" != 'off' ]; then
                                        usage 1
@@ -525,6 +526,9 @@ else
 fi
 
 [ -d "$INCLUDE" ] || usage 1
+if [ "${LIBBPF_DIR-unused}" != "unused" ]; then
+       [ -d "$LIBBPF_DIR" ] || usage 1
+fi
 
 echo "# Generated config based on" $INCLUDE >$CONFIG
 quiet_config >> $CONFIG