[libvirt] [PATCH] nwfilter: Initialize virNWFilterAddIpAddrForIfname return variable

Jiri Denemark jdenemar at redhat.com
Wed Nov 23 10:55:19 UTC 2011


On Wed, Nov 23, 2011 at 11:13:47 +0100, Michal Privoznik wrote:
> Latest nwfilter patch ad6c67cf introduced uninitialized return
> value. This was spotted by 4.6.2 gcc.
> ---
>  src/nwfilter/nwfilter_learnipaddr.c |   12 +++++++-----
>  1 files changed, 7 insertions(+), 5 deletions(-)
> 
> diff --git a/src/nwfilter/nwfilter_learnipaddr.c b/src/nwfilter/nwfilter_learnipaddr.c
> index 675ef5b..2e373a6 100644
> --- a/src/nwfilter/nwfilter_learnipaddr.c
> +++ b/src/nwfilter/nwfilter_learnipaddr.c
> @@ -323,7 +323,7 @@ virNWFilterDeregisterLearnReq(int ifindex) {
>  static int
>  virNWFilterAddIpAddrForIfname(const char *ifname, char *addr)
>  {
> -    int ret;
> +    int ret = -1;
>      virNWFilterVarValuePtr val;
>  
>      virMutexLock(&ipAddressMapLock);
> @@ -333,16 +333,18 @@ virNWFilterAddIpAddrForIfname(const char *ifname, char *addr)
>          val = virNWFilterVarValueCreateSimple(addr);
>          if (!val) {
>              virReportOOMError();
> -            ret = -1;
> -            goto err_exit;
> +            goto cleanup;
>          }
>          ret = virNWFilterHashTablePut(ipAddressMap, ifname, val, 1);
> +        goto cleanup;
>      } else {
>          if (virNWFilterVarValueAddValue(val, addr) < 0)
> -            ret = -1;
> +            goto cleanup;
>      }
>  
> -err_exit:
> +    ret = 0;
> +
> +cleanup:
>      virMutexUnlock(&ipAddressMapLock);
>  
>      return ret;

ACK, although this is still not completely right, since
virNWFilterHashTablePut returns 1 on error, while this function wants to
return -1 on error. But it's virNWFilterHashTablePut that needs to be fixed to
return -1 and after that, no additional work is needed in the function you're
touching with this patch.

Jirka




More information about the libvir-list mailing list