@@ -410,7 +410,7 @@ static bool bin_pack_ip_port(Bin_Pack *bp, const Logger *logger, const IP_Port *
410410 Ip_Ntoa ip_str ;
411411 // TODO(iphydf): Find out why we're trying to pack invalid IPs, stop
412412 // doing that, and turn this into an error.
413- LOGGER_TRACE (logger , "cannot pack invalid IP: %s" , net_ip_ntoa (& ip_port -> ip , & ip_str ));
413+ LOGGER_DEBUG (logger , "cannot pack invalid IP: %s" , net_ip_ntoa (& ip_port -> ip , & ip_str ));
414414 return false;
415415 }
416416
@@ -431,6 +431,7 @@ int pack_ip_port(const Logger *logger, uint8_t *data, uint16_t length, const IP_
431431 const uint32_t size = bin_pack_obj_size (bin_pack_ip_port_handler , ip_port , logger );
432432
433433 if (size > length ) {
434+ LOGGER_ERROR (logger , "not enough space for packed IP: %u but need %u" , length , size );
434435 return -1 ;
435436 }
436437
@@ -2077,7 +2078,9 @@ static int friend_iplist(const DHT *dht, IP_Port *ip_portlist, uint16_t friend_n
20772078 }
20782079
20792080#ifdef FRIEND_IPLIST_PAD
2080- memcpy (ip_portlist , ipv6s , num_ipv6s * sizeof (IP_Port ));
2081+ for (int i = 0 ; i < num_ipv6s ; ++ i ) {
2082+ ip_portlist [i ] = ipv6s [i ];
2083+ }
20812084
20822085 if (num_ipv6s == MAX_FRIEND_CLIENTS ) {
20832086 return MAX_FRIEND_CLIENTS ;
@@ -2089,7 +2092,9 @@ static int friend_iplist(const DHT *dht, IP_Port *ip_portlist, uint16_t friend_n
20892092 num_ipv4s_used = num_ipv4s ;
20902093 }
20912094
2092- memcpy (& ip_portlist [num_ipv6s ], ipv4s , num_ipv4s_used * sizeof (IP_Port ));
2095+ for (int i = 0 ; i < num_ipv4s_used ; ++ i ) {
2096+ ip_portlist [num_ipv6s + i ] = ipv4s [i ];
2097+ }
20932098 return num_ipv6s + num_ipv4s_used ;
20942099
20952100#else /* !FRIEND_IPLIST_PAD */
@@ -2098,11 +2103,15 @@ static int friend_iplist(const DHT *dht, IP_Port *ip_portlist, uint16_t friend_n
20982103 * with the shorter one...
20992104 */
21002105 if (num_ipv6s >= num_ipv4s ) {
2101- memcpy (ip_portlist , ipv6s , num_ipv6s * sizeof (IP_Port ));
2106+ for (int i = 0 ; i < num_ipv6s ; ++ i ) {
2107+ ip_portlist [i ] = ipv6s [i ];
2108+ }
21022109 return num_ipv6s ;
21032110 }
21042111
2105- memcpy (ip_portlist , ipv4s , num_ipv4s * sizeof (IP_Port ));
2112+ for (int i = 0 ; i < num_ipv4s ; ++ i ) {
2113+ ip_portlist [i ] = ipv4s [i ];
2114+ }
21062115 return num_ipv4s ;
21072116
21082117#endif /* !FRIEND_IPLIST_PAD */
@@ -2680,7 +2689,7 @@ DHT *new_dht(const Logger *log, const Memory *mem, const Random *rng, const Netw
26802689 dht -> hole_punching_enabled = hole_punching_enabled ;
26812690 dht -> lan_discovery_enabled = lan_discovery_enabled ;
26822691
2683- dht -> ping = ping_new (mem , mono_time , rng , dht );
2692+ dht -> ping = ping_new (mem , mono_time , log , rng , dht );
26842693
26852694 if (dht -> ping == nullptr ) {
26862695 LOGGER_ERROR (log , "failed to initialise ping" );
0 commit comments