[LTP] [PATCH v1] vma05: Fix false positives from stripped system libraries

Petr Vorel pvorel@suse.cz
Wed Jul 30 09:52:54 CEST 2025


Hi Ben,

> The vma05 test was producing false positive failures by flagging any
> "??" symbols in gdb backtraces as vDSO kernel bugs, including those
> from normal stripped system libraries.

> This caused widespread false failures in production environments where
> system libraries like libc.so.6 are typically stripped of debug symbols.

> The fix filters out "??" symbols that originate from system libraries
> (paths containing "/lib/" or "/usr/lib/") while still detecting genuine
> unresolved symbols in application code that could indicate real vDSO bugs.

Sounds reasonable, but I would prefer Cyril or Jan acked this.

> Signed-off-by: Ben Copeland <ben.copeland@linaro.org>
> ---
>  testcases/kernel/mem/vma/vma05.sh | 7 +++++--
>  1 file changed, 5 insertions(+), 2 deletions(-)

> diff --git a/testcases/kernel/mem/vma/vma05.sh b/testcases/kernel/mem/vma/vma05.sh
> index c560eecbc..09757a0fe 100755
> --- a/testcases/kernel/mem/vma/vma05.sh
> +++ b/testcases/kernel/mem/vma/vma05.sh
> @@ -64,11 +64,14 @@ tst_test()
>  	TRACE=$(gdb -silent -ex="thread apply all backtrace" -ex="quit"\
>  		vma05_vdso ./core* 2> /dev/null)

> -	if echo "$TRACE" | grep -qF "??"; then
> -		tst_res TFAIL "[vdso] bug not patched"
> +	# Only check for ?? symbols in application code, not system libraries
> +	APP_UNKNOWN=$(echo "$TRACE" | grep -F "??" | grep -v "from /lib/" | grep -v "from /usr/lib/")
You can pass more regexes to grep to save one pipe:

	APP_UNKNOWN=$(echo "$TRACE" | grep -F "??" | grep -v -e "from /lib/" -e "from /usr/lib/")

(or have single more complicated regexp).

> +	if [ -n "$APP_UNKNOWN" ]; then
> +		tst_res TFAIL "[vdso] bug not patched - unknown symbols in application code"
>  	else
>  		tst_res TPASS "[vdso] backtrace complete"
>  	fi
> +	fi

Suggested changes.

With that you can add:
Reviewed-by: Petr Vorel <pvorel@suse.cz>

Kind regards,
Petr

+++ testcases/kernel/mem/vma/vma05.sh
@@ -65,13 +65,12 @@ tst_test()
 		vma05_vdso ./core* 2> /dev/null)
 
 	# Only check for ?? symbols in application code, not system libraries
-	APP_UNKNOWN=$(echo "$TRACE" | grep -F "??" | grep -v "from /lib/" | grep -v "from /usr/lib/")
+	APP_UNKNOWN=$(echo "$TRACE" | grep -F "??" | grep -v -e "from /lib/" -e "from /usr/lib/")
 	if [ -n "$APP_UNKNOWN" ]; then
 		tst_res TFAIL "[vdso] bug not patched - unknown symbols in application code"
 	else
 		tst_res TPASS "[vdso] backtrace complete"
 	fi
-	fi
 }
 
 . tst_run.sh


More information about the ltp mailing list