From c82a4d170e04b84aa0a630ed8142ec4220efaff9 Mon Sep 17 00:00:00 2001 Message-Id: In-Reply-To: References: From: Andrea Claudi Date: Wed, 24 Nov 2021 11:28:08 +0100 Subject: [PATCH] configure: fix parsing issue on libbpf_dir option Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=2009355 Upstream Status: iproute2.git commit 48c379bc commit 48c379bc2afd43b3246f68ed46475f5318b1218f Author: Andrea Claudi Date: Thu Oct 14 10:50:50 2021 +0200 configure: fix parsing issue on libbpf_dir option 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 Acked-by: Phil Sutter Signed-off-by: David Ahern --- configure | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/configure b/configure index ea9051ab..0f304206 100755 --- a/configure +++ b/configure @@ -486,7 +486,7 @@ usage() cat < Path to iproute2 include dir - --libbpf_dir Path to libbpf DESTDIR + --libbpf_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 -- 2.31.1