Re: [PATCH] pahole: fix BTF function parameter type match check

Alan Maguire <[email protected]> Thu, 16 Jul 2026 14:19:02 +0100
Newsgroups org.kernel.vger.dwarves
Message-ID <[email protected]>
On 14/07/2026 15:08, Florian Larysch wrote:
> The BTF_KIND_FUNC_PROTO arm in types__match() first checks whether two
> function types identified by t1/t2 have matching return types and then
> attempts to iterate over the function parameters (p1/p2) to check them
> for compatibility too.
> 
> However, the loop just repeats the check on t1/t2 instead of p1/p2, so
> we just keep re-checking return type compatibility, ignoring possible
> mismatches of the actual parameter types.
> 
> Fix this by actually comparing p1 and p2. This also resolves a
> unused-but-set-variable build-time warning.
> 
> Signed-off-by: Florian Larysch <[email protected]>

Great catch, applied. Thank you!

Alan

> ---
>  btf_encoder.c | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
> 
> diff --git a/btf_encoder.c b/btf_encoder.c
> index d5af706..3aca2c2 100644
> --- a/btf_encoder.c
> +++ b/btf_encoder.c
> @@ -1129,8 +1129,8 @@ static bool types__match(struct btf_encoder *encoder,
>  					  btf2, t2->type))
>  				return false;
>  			for (i = 0; i < vlen; i++, p1++, p2++) {
> -				if (!types__match(encoder, btf1, t1->type,
> -						  btf2, t2->type))
> +				if (!types__match(encoder, btf1, p1->type,
> +						  btf2, p2->type))
>  					return false;
>  			}
>  			return true;
> -- 
> 2.55.0
>