From: Eric Bollengier Date: Fri, 21 Aug 2020 14:06:28 +0000 (+0200) Subject: Avoid segfault with address manipulation functions X-Git-Tag: Release-11.3.2~1309 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5aae1632dc73ce3cd5732cf9a6744388cbcf3d0d;p=thirdparty%2Fbacula.git Avoid segfault with address manipulation functions --- diff --git a/bacula/src/lib/address_conf.c b/bacula/src/lib/address_conf.c index 62d8cfb813..5ca569b9d5 100644 --- a/bacula/src/lib/address_conf.c +++ b/bacula/src/lib/address_conf.c @@ -243,7 +243,12 @@ const char *build_addresses_str(dlist *addrs, char *buf, int blen) const char *get_first_address(dlist *addrs, char *outputbuf, int outlen) { - return ((IPADDR *)(addrs->first()))->get_address(outputbuf, outlen); + IPADDR *addr = (IPADDR *)(addrs->first()); + if (addr) { + return addr->get_address(outputbuf, outlen); + } else { + return _("N/A"); + } } int get_first_port_net_order(dlist *addrs) @@ -251,7 +256,12 @@ int get_first_port_net_order(dlist *addrs) if (!addrs) { return 0; } else { - return ((IPADDR *)(addrs->first()))->get_port_net_order(); + IPADDR *addr = (IPADDR *)(addrs->first()); + if (addr) { + return addr->get_port_net_order(); + } else { + return 0; + } } } @@ -260,7 +270,12 @@ int get_first_port_host_order(dlist *addrs) if (!addrs) { return 0; } else { - return ((IPADDR *)(addrs->first()))->get_port_host_order(); + IPADDR *addr = (IPADDR *)(addrs->first()); + if (addr) { + return addr->get_port_host_order(); + } else { + return 0; + } } }