From 06305696da9d297b5e1a0def1f67998d9d8031df Mon Sep 17 00:00:00 2001 From: lohhiiccc <96543753+lohhiiccc@users.noreply.github.com> Date: Tue, 27 Jan 2026 21:34:41 +0100 Subject: [PATCH] refactor: remove unnecessary wrapper functions and redundant checks --- src/packet/build.c | 23 +++-------------------- src/packet/parse_icmp.c | 3 --- src/recv/helpers/build_reply.c | 1 - 3 files changed, 3 insertions(+), 24 deletions(-) diff --git a/src/packet/build.c b/src/packet/build.c index 40760cd..43086ab 100644 --- a/src/packet/build.c +++ b/src/packet/build.c @@ -8,8 +8,6 @@ /* Forward declarations */ static void write_icmp_header(struct icmp_header *hdr, uint8_t type, uint8_t code, uint32_t header_rest); -static void copy_payload(void *dest, const void *src, size_t len); -static void compute_and_set_checksum(struct icmp_header *hdr, size_t total_len); /* -------------------- */ int @@ -26,12 +24,10 @@ icmp_build_packet(void *buffer, size_t buffer_len, uint8_t type, uint8_t code, write_icmp_header(h, type, code, header_rest); if (payload_len > 0) - { - copy_payload((unsigned char*)buffer + sizeof(struct icmp_header), - payload, payload_len); - } + memcpy((unsigned char*)buffer + sizeof(struct icmp_header), payload, + payload_len); - compute_and_set_checksum(h, required_len); + h->checksum = htons(icmp_checksum(h, required_len)); return (int)required_len; } @@ -46,16 +42,3 @@ write_icmp_header(struct icmp_header *hdr, uint8_t type, uint8_t code, hdr->un.gateway = header_rest; } -static void -copy_payload(void *dest, const void *src, size_t len) -{ - if (0 == len) - return; - memcpy(dest, src, len); -} - -static void -compute_and_set_checksum(struct icmp_header *hdr, size_t total_len) -{ - hdr->checksum = htons(icmp_checksum(hdr, total_len)); -} diff --git a/src/packet/parse_icmp.c b/src/packet/parse_icmp.c index 4c3b5eb..f92a5c5 100644 --- a/src/packet/parse_icmp.c +++ b/src/packet/parse_icmp.c @@ -25,9 +25,6 @@ icmp_parse_icmp_payload(const void *buffer, size_t buffer_len, extract_icmp_fields(hdr, type, code); size_t payload_offset = ip_hdr_len + ICMP_HEADER_SIZE; - if (buffer_len < payload_offset) - return -1; - *payload_len = buffer_len - payload_offset; *payload = (const uint8_t *)buffer + payload_offset; return 0; diff --git a/src/recv/helpers/build_reply.c b/src/recv/helpers/build_reply.c index 41bd927..d241aec 100644 --- a/src/recv/helpers/build_reply.c +++ b/src/recv/helpers/build_reply.c @@ -16,7 +16,6 @@ recv_build_reply(icmp_reply_t *reply, uint8_t type, uint8_t code, reply->payload = (void *)payload; reply->payload_len = payload_len; reply->ip_payload = (void *)((const uint8_t *)buffer + ip_hdr_len); - reply->ip_payload_len = 0; if (icmp_get_time(&reply->timestamp) < 0) { reply->timestamp.tv_sec = 0;