[Libguestfs] [PATCH nbdkit 3/4] tests/functions.sh.in: Rename variables $status and $i when running cleanups.

Eric Blake eblake at redhat.com
Tue May 26 15:25:32 UTC 2020


On 5/22/20 4:32 PM, Richard W.M. Jones wrote:
> This causes conflicts if a cleanup hook happens to use a variable with
> the same name.

I don't envy the debugging you used to finally spot this.  Using 'local' 
in the cleanup hook helps, but so does this rename, so I like this approach.

> ---
>   tests/functions.sh.in | 10 +++++-----
>   1 file changed, 5 insertions(+), 5 deletions(-)
> 
> diff --git a/tests/functions.sh.in b/tests/functions.sh.in
> index e2ef9701..b5c7d88b 100644
> --- a/tests/functions.sh.in
> +++ b/tests/functions.sh.in
> @@ -43,17 +43,17 @@ cleanup_fn ()
>   
>   _run_cleanup_hooks ()
>   {
> -    local status=$? i
> +    local _status=$? _i
>   
>       set +e
>       trap '' INT QUIT TERM EXIT ERR
> -    echo $0: run cleanup hooks: exit code $status
> +    echo $0: run cleanup hooks: exit code $_status
>   
> -    for (( i = 0; i < ${#_cleanup_hook[@]}; ++i )); do
> -        ${_cleanup_hook[i]}
> +    for (( _i = 0; _i < ${#_cleanup_hook[@]}; ++_i )); do
> +        ${_cleanup_hook[_i]}
>       done
>   
> -    exit $status
> +    exit $_status
>   }
>   trap _run_cleanup_hooks INT QUIT TERM EXIT ERR
>   
> 

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3226
Virtualization:  qemu.org | libvirt.org




More information about the Libguestfs mailing list