virsh-network: Avoid possible NULL deref in cmdNetworkDHCPLeases

Problem is, localtime_r() returns a pointer to converted time or
NULL in case of an error. But checking the glibc sources, error
will occur iff a NULL has been passed as an either of arguments
the function takes. But GCC fails to see that:

../../tools/virsh-network.c: In function 'cmdNetworkDHCPLeases':
../../tools/virsh-network.c:1370:12: error: potential null pointer dereference [-Werror=null-dereference]
         ts = *localtime_r(&expirytime_tmp, &ts);
         ~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cc1: all warnings being treated as errors

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
This commit is contained in:
Michal Privoznik 2016-06-08 11:32:09 +02:00
parent e4fd42d87b
commit 5ec2b0cca5

View File

@ -1367,7 +1367,7 @@ cmdNetworkDHCPLeases(vshControl *ctl, const vshCmd *cmd)
time_t expirytime_tmp = lease->expirytime;
struct tm ts;
char expirytime[32];
ts = *localtime_r(&expirytime_tmp, &ts);
localtime_r(&expirytime_tmp, &ts);
strftime(expirytime, sizeof(expirytime), "%Y-%m-%d %H:%M:%S", &ts);
if (lease->type == VIR_IP_ADDR_TYPE_IPV4)