diff --git a/dtool/LocalSetup.cmake b/dtool/LocalSetup.cmake index b92fb8614c..5ddea90f9a 100644 --- a/dtool/LocalSetup.cmake +++ b/dtool/LocalSetup.cmake @@ -133,6 +133,7 @@ check_include_file_cxx(dirent.h PHAVE_DIRENT_H) check_include_file_cxx(ucontext.h PHAVE_UCONTEXT_H) #TODO doesn't work on OSX, use sys/ucontext.h check_include_file_cxx(linux/input.h PHAVE_LINUX_INPUT_H) check_include_file_cxx(stdint.h PHAVE_STDINT_H) +check_include_file_cxx(execinfo.h PHAVE_EXECINFO_H) # Do we have Posix threads? #set(HAVE_POSIX_THREADS ${CMAKE_USE_PTHREADS_INIT}) diff --git a/panda/src/nativenet/socket_address.cxx b/panda/src/nativenet/socket_address.cxx index e92310ce7f..96a9ece619 100644 --- a/panda/src/nativenet/socket_address.cxx +++ b/panda/src/nativenet/socket_address.cxx @@ -125,13 +125,15 @@ get_ip_port() const { if (_storage.ss_family == AF_INET) { getnameinfo(&_addr, sizeof(sockaddr_in), buf, sizeof(buf), nullptr, 0, NI_NUMERICHOST); - sprintf(buf + strlen(buf), ":%hu", get_port()); + size_t len = strlen(buf); + snprintf(buf + len, sizeof(buf) - len, ":%hu", get_port()); } else if (_storage.ss_family == AF_INET6) { // Protect the IPv6 address within square brackets. buf[0] = '['; getnameinfo(&_addr, sizeof(sockaddr_in6), buf + 1, sizeof(buf) - 1, nullptr, 0, NI_NUMERICHOST); - sprintf(buf + strlen(buf), "]:%hu", get_port()); + size_t len = strlen(buf); + snprintf(buf + len, sizeof(buf) - len, "]:%hu", get_port()); } else { nassert_raise("unsupported address family");