[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [libvirt] [PATCH 07/26] virsh: Resolve Coverity DEADCODE



On 09/05/14 00:26, John Ferlan wrote:
> Since 0766783abbe8bbc9ea686c2c3149f4c0ac139e19
> 
> Coverity complains that the EDIT_FREE definition results in DEADCODE.
> 
> As it turns out with the change to use the EDIT_FREE macro the call to
> vir*Free() wouldn't be necessary nor would it happen...
> 
> Prior code to above commitid would :
> 
>   vir*Ptr foo = NULL;
>   ...
>   foo = vir*GetXMLDesc()
>   ...
>   vir*Free(foo);
>   foo = vir*DefineXML()
>   ...
> 
> And thus the free was needed.  With the change to use EDIT_FREE the
> same code changed to:
> 
>   vir*Ptr foo = NULL;
>   vir*Ptr foo_edited = NULL;
>   ...
>   foo = vir*GetXMLDesc()
>   ...
>   if (foo_edited)
>       vir*Free(foo_edited);
>   foo_edited = vir*DefineXML()
>   ...
> 
> However, foo_edited could never be set in the code path - even with
> all the goto's since the only way for it to be set is if vir*DefineXML()
> succeeds in which case the code to allow a retry (and thus all the goto's)
> never leaves foo_edited set
> 
> All error paths lead to "cleanup:" which causes both foo and foo_edited
> to call the respective vir*Free() routines if set.
> 
> Signed-off-by: John Ferlan <jferlan redhat com>
> ---
>  tools/virsh-domain.c    | 5 -----
>  tools/virsh-edit.c      | 9 ---------
>  tools/virsh-interface.c | 3 ---
>  tools/virsh-network.c   | 3 ---
>  tools/virsh-nwfilter.c  | 3 ---
>  tools/virsh-pool.c      | 3 ---
>  tools/virsh-snapshot.c  | 3 ---
>  7 files changed, 29 deletions(-)


Yep, the free()s in the cleanup section of each command are redundant.

ACK


Attachment: signature.asc
Description: OpenPGP digital signature


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]