Subject: Re: [PATCH v2 3/9] reftable/stack: fix parameter validation when compacting range

From: Toon Claes <[email-masked]>
Date: Thu, 01 Feb 2024 17:15:14 +0100

Patrick Steinhardt <[email-masked]> writes:

> diff --git a/reftable/stack.c b/reftable/stack.c
> index d084823a92..b6b24c90bf 100644
> --- a/reftable/stack.c
> +++ b/reftable/stack.c
> @@ -1146,12 +1146,14 @@ static int stack_compact_range(struct reftable_stack *st, int first, int last,
>  done:
>  	free_names(delete_on_success);
>
> -	listp = subtable_locks;
> -	while (*listp) {
> -		unlink(*listp);
> -		listp++;
> +	if (subtable_locks) {
> +		listp = subtable_locks;
> +		while (*listp) {
> +			unlink(*listp);
> +			listp++;
> +		}
> +		free_names(subtable_locks);
>  	}
> -	free_names(subtable_locks);
>  	if (lock_file_fd >= 0) {
>  		close(lock_file_fd);
>  		lock_file_fd = -1;

Technically, this change is not needed, because `free_names()` deals
with NULL pointers already.

--
Toon