[libvirt] [PATCH 2/3] conf: Resolve Coverity FORWARD_NULL

Laine Stump laine at laine.org
Sat May 23 19:19:15 UTC 2015


On 05/13/2015 12:32 PM, John Ferlan wrote:
> Even though it's been pointed out they are false positives:
>
> http://www.redhat.com/archives/libvir-list/2015-May/msg00301.html
>
> and
>
> http://www.redhat.com/archives/libvir-list/2015-May/msg00302.html
>
> these still show up as Coverity issues. In order to silence Coverity
> add an 'sa_assert' prior to check failure.
>
> Signed-off-by: John Ferlan <jferlan at redhat.com>
> ---
>  src/conf/domain_conf.c | 2 ++
>  1 file changed, 2 insertions(+)
>
> diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
> index add857c..5b69b5a 100644
> --- a/src/conf/domain_conf.c
> +++ b/src/conf/domain_conf.c
> @@ -23078,6 +23078,7 @@ virDomainObjListCollect(virDomainObjListPtr domlist,
>  {
>      struct virDomainListData data = { NULL, 0 };
>  
> +    sa_assert(domlist->objs);
>      virObjectLock(domlist);

Theoretically domlist->objs could be set to NULL by some other thread
after the sa_asser and before the virObjectLock, but since these are
false positives, the purpose is to shut up coverity, not to actually
check for a non-NULL pointer.

So ACK.


>      if (VIR_ALLOC_N(data.vms, virHashSize(domlist->objs)) < 0) {
>          virObjectUnlock(domlist);
> @@ -23141,6 +23142,7 @@ virDomainObjListConvert(virDomainObjListPtr domlist,
>      }
>      virObjectUnlock(domlist);
>  
> +    sa_assert(*vms);
>      virDomainObjListFilter(vms, nvms, conn, filter, flags);
>  
>      return 0;




More information about the libvir-list mailing list