[libvirt] [PATCH] test: Remove possible infinite loop in virnetsockettest

Michal Privoznik mprivozn at redhat.com
Tue Sep 11 11:19:18 UTC 2018


On 09/07/2018 02:26 PM, John Ferlan wrote:
> Commit 39015a6f3 modified the test to be more reliable/realistic,
> but without checking the return status of virEventRunDefaultImpl
> it's possible that the test could run infinitely.
> 
> Found by Coverity
> 
> Signed-off-by: John Ferlan <jferlan at redhat.com>
> ---
>  tests/virnetsockettest.c | 9 +++++++--
>  1 file changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/tests/virnetsockettest.c b/tests/virnetsockettest.c
> index cccb90d0be..490f720fd0 100644
> --- a/tests/virnetsockettest.c
> +++ b/tests/virnetsockettest.c
> @@ -243,8 +243,13 @@ testSocketAccept(const void *opaque)
>                          &cdata) < 0)
>          goto cleanup;
>  
> -    while (rsock == NULL)
> -        virEventRunDefaultImpl();
> +    while (rsock == NULL) {
> +        if (virEventRunDefaultImpl() < 0) {
> +            VIR_WARN("Failed to run event loop: %s\n",
> +                     virGetLastErrorMessage());

The libvirt error is dispatched in case of error. Do we need this
VIR_WARN() then?

> +            break;
> +        }
> +    }
>  
>      for (i = 0; i < nlsock; i++) {
>          if (lsock[i] == rsock) {
> 


ACK regardless.

Michal




More information about the libvir-list mailing list