Blob Blame History Raw
From 290ce87f0a59ec4ddc83918c073364540057ae64 Mon Sep 17 00:00:00 2001
Message-Id: <290ce87f0a59ec4ddc83918c073364540057ae64.1634733799.git.aclaudi@redhat.com>
In-Reply-To: <5e6e93a55d2335b90aacb0107e962610cce64007.1634733799.git.aclaudi@redhat.com>
References: <5e6e93a55d2335b90aacb0107e962610cce64007.1634733799.git.aclaudi@redhat.com>
From: Andrea Claudi <aclaudi@redhat.com>
Date: Wed, 20 Oct 2021 12:32:38 +0200
Subject: [PATCH] configure: fix parsing issue on include_dir option

Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1999860
Upstream Status: iproute2-next.git commit 1d819dcc

commit 1d819dcc741e25958190e31f8186c940713fa0a8
Author: Andrea Claudi <aclaudi@redhat.com>
Date:   Thu Oct 14 10:50:49 2021 +0200

    configure: fix parsing issue on include_dir option

    configure is stuck in an endless loop if '--include_dir' option is used
    without a value:

    $ ./configure --include_dir
    ./configure: line 506: shift: 2: shift count out of range
    ./configure: line 506: 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 include dir
    exists; this avoid to produce an erroneous configuration.

    Fixes: a9c3d70d902a ("configure: add options ability")
    Signed-off-by: Andrea Claudi <aclaudi@redhat.com>
    Acked-by: Phil Sutter <phil@nwl.cc>
    Signed-off-by: David Ahern <dsahern@kernel.org>
---
 configure | 9 ++++++---
 1 file changed, 6 insertions(+), 3 deletions(-)

diff --git a/configure b/configure
index 7f4f3bd9..ea9051ab 100755
--- a/configure
+++ b/configure
@@ -485,7 +485,7 @@ usage()
 {
 	cat <<EOF
 Usage: $0 [OPTIONS]
-	--include_dir		Path to iproute2 include dir
+	--include_dir <dir>	Path to iproute2 include dir
 	--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
@@ -502,8 +502,9 @@ else
 	while true; do
 		case "$1" in
 			--include_dir)
-				INCLUDE=$2
-				shift 2 ;;
+				shift
+				INCLUDE="$1"
+				[ "$#" -gt 0 ] && shift ;;
 			--libbpf_dir)
 				LIBBPF_DIR="$2"
 				shift 2 ;;
@@ -523,6 +524,8 @@ else
 	done
 fi
 
+[ -d "$INCLUDE" ] || usage 1
+
 echo "# Generated config based on" $INCLUDE >$CONFIG
 quiet_config >> $CONFIG
 
-- 
2.31.1