[libvirt] [PATCH] Fix building with -Og
Peter Krempa
pkrempa at redhat.com
Fri Jun 3 11:52:40 UTC 2016
On Fri, Jun 03, 2016 at 13:32:02 +0200, Martin Kletzander wrote:
> When building using -Og, gcc sees that some variables can be used
> uninitialized It can be debatable whether it is possible with our
> codeflow, but functions should be self-contained and initializations are
> always good. The return instead of goto is due to actualType being used
> in the cleanup.
>
> Signed-off-by: Martin Kletzander <mkletzan at redhat.com>
> ---
> src/lxc/lxc_driver.c | 2 +-
> src/nwfilter/nwfilter_ebiptables_driver.c | 2 +-
> src/util/virbitmap.c | 2 +-
> 3 files changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c
> index 67f14fe766a5..f0948eae774e 100644
> --- a/src/lxc/lxc_driver.c
> +++ b/src/lxc/lxc_driver.c
> @@ -4275,7 +4275,7 @@ lxcDomainAttachDeviceNetLive(virConnectPtr conn,
> if (!priv->initpid) {
> virReportError(VIR_ERR_OPERATION_INVALID, "%s",
> _("Cannot attach disk until init PID is known"));
> - goto cleanup;
> + return -1;
> }
False positive. actualType is never evaluated uninitialized since ret is
set to -1 and veth is NULL.
It makes sense to change it since a lot of stuff below is returning -1
directly.
>
> if (virLXCProcessValidateInterface(net) < 0)
> diff --git a/src/nwfilter/nwfilter_ebiptables_driver.c b/src/nwfilter/nwfilter_ebiptables_driver.c
> index 423d069e1b26..b7be2917e29e 100644
> --- a/src/nwfilter/nwfilter_ebiptables_driver.c
> +++ b/src/nwfilter/nwfilter_ebiptables_driver.c
> @@ -1570,7 +1570,7 @@ iptablesCreateRuleInstanceStateCtrl(virFirewallPtr fw,
> const char *ifname,
> virNWFilterVarCombIterPtr vars)
> {
> - int rc;
> + int rc = 0;
> bool directionIn = false;
> char chainPrefix[2];
> bool maySkipICMP, inout = false;
Bah. This function makes my brain hurt. I didn't bother checking.
> diff --git a/src/util/virbitmap.c b/src/util/virbitmap.c
> index 9283aef1735b..4ca59f9d6227 100644
> --- a/src/util/virbitmap.c
> +++ b/src/util/virbitmap.c
> @@ -817,7 +817,7 @@ virBitmapLastSetBit(virBitmapPtr bitmap)
> ssize_t i;
> int unusedBits;
> ssize_t sz;
> - unsigned long bits;
> + unsigned long bits = 0;
okay, so there are possible input values ableit being invalid and
impossible that would actually allow to evaluate bits when uninitialized.
ACK, I hope that people get tired of experimenting with bleeding edge
compilers soon.
Peter
More information about the libvir-list
mailing list