diff --git a/core/src/lib/bnet_server_tcp.cc b/core/src/lib/bnet_server_tcp.cc index 0d1b256a76e..a0da08c281c 100644 --- a/core/src/lib/bnet_server_tcp.cc +++ b/core/src/lib/bnet_server_tcp.cc @@ -55,8 +55,10 @@ #elif HAVE_SYS_POLL_H #include #endif + #include #include +#include static pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; static std::atomic quit{false}; @@ -150,10 +152,10 @@ static void RemoveDuplicateAddresses(dlist* addr_list) static void LogAllAddresses(dlist* addr_list) { - std::array allbuf; + std::vector buf(256 * addr_list->size()); Dmsg1(100, "Addresses %s\n", - BuildAddressesString(addr_list, allbuf.data(), allbuf.size())); + BuildAddressesString(addr_list, buf.data(), buf.size())); } static int OpenSocketAndBind(IPADDR* ipaddr, @@ -173,11 +175,13 @@ static int OpenSocketAndBind(IPADDR* ipaddr, if (fd < 0) { BErrNo be; std::array buf1; - std::array buf2; + std::vector buf2(256 * addr_list->size()); + Emsg3(M_ABORT, 0, _("Cannot open stream socket. ERR=%s. Current %s All %s\n"), be.bstrerror(), ipaddr->build_address_str(buf1.data(), buf1.size()), BuildAddressesString(addr_list, buf2.data(), buf2.size())); + return -1; }