From adafd04bfced39549d3cafd68032c65b3a48ae27 Mon Sep 17 00:00:00 2001 From: starnakin Date: Mon, 15 Dec 2025 04:16:47 -0600 Subject: [PATCH] fix: some leak --- src/main.c | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main.c b/src/main.c index 28948f2..15008ec 100644 --- a/src/main.c +++ b/src/main.c @@ -112,21 +112,21 @@ static int create_socket(struct setting const *settings) return -1; } - ret = setsockopt(sockfd, IPPROTO_IP, IP_TTL, &settings->ttl, sizeof(uint8_t)); + ret = setsockopt(sockfd, IPPROTO_IP, IP_TTL, &settings->ttl, sizeof(settings->ttl)); if (ret != 0) { + close(sockfd); print_err("Failed to setsockopt(): ttl"); return -1; } - - struct timeval tv = {1, 0}; + struct timeval tv = {2, 0}; ret = setsockopt(sockfd, SOL_SOCKET, SO_RCVTIMEO, &tv, sizeof(tv)); if (ret != 0) { + close(sockfd); print_err("Failed to setsockopt(): recv timeout"); return -1; } - return sockfd; } @@ -209,13 +209,13 @@ int main(int ac, char **av) ret = recvfrom(sockfd, buffer, recv_packet_size, 0, (struct sockaddr *) &sender, &len); if (ret < 0) { - print_err("error: receive packet failed."); + print_err("error: receive packet failed.%zd", ret); goto error3; } gettimeofday(&stop, NULL); } while (((size_t) ret != recv_packet_size) || (check_reply(&settings.dest.ip, &sender, packet, buffer + sizeof(struct iphdr), packet_size))); - + if (((struct icmphdr *) buffer + sizeof(struct iphdr))->type == 0) stats.packets_received++;