[libvirt] [PATCH 07/26] virsh: Resolve Coverity DEADCODE
Peter Krempa
pkrempa at redhat.com
Thu Sep 11 11:47:53 UTC 2014
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 at 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 819 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20140911/9d3b1c53/attachment-0001.sig>
More information about the libvir-list
mailing list