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@xxxxxxxxxx> --- tools/virsh-network.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tools/virsh-network.c b/tools/virsh-network.c index 22ea016..5abcda3 100644 --- a/tools/virsh-network.c +++ b/tools/virsh-network.c @@ -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) -- 2.8.3 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list