From 82bd41a6482c49a37a99f8ef302aa942c7b1da4e Mon Sep 17 00:00:00 2001 From: EgorWeders <157705588+EgorWeders@users.noreply.github.com> Date: Tue, 20 Aug 2024 12:05:51 +0000 Subject: [PATCH] Added malloc return check --- src/blackwhitelist.c | 8 ++++++++ src/dnsredir.c | 4 ++++ src/goodbyedpi.c | 9 +++++++++ src/ttltrack.c | 4 ++++ 4 files changed, 25 insertions(+) diff --git a/src/blackwhitelist.c b/src/blackwhitelist.c index 075ca298..0e7a4fc8 100644 --- a/src/blackwhitelist.c +++ b/src/blackwhitelist.c @@ -36,6 +36,10 @@ static int add_hostname(const char *host) { return FALSE; blackwhitelist_record_t *tmp_record = malloc(sizeof(blackwhitelist_record_t)); + + if (!tmp_record) + return FALSE; + char *host_c = NULL; if (!check_get_hostname(host)) { @@ -55,6 +59,10 @@ static int add_hostname(const char *host) { int blackwhitelist_load_list(const char *filename) { char *line = malloc(HOST_MAXLEN + 1); + + if (!line) + return FALSE; + size_t linelen = HOST_MAXLEN + 1; int cnt = 0; ssize_t read; diff --git a/src/dnsredir.c b/src/dnsredir.c index a63e0747..1a60016d 100644 --- a/src/dnsredir.c +++ b/src/dnsredir.c @@ -142,6 +142,10 @@ static int add_udp_conntrack(const uint32_t srcip[4], const uint16_t srcport, return FALSE; udp_connrecord_t *tmp_connrecord = malloc(sizeof(udp_connrecord_t)); + + if (!tmp_connrecord) + return FALSE; + construct_key(srcip, srcport, tmp_connrecord->key, is_ipv6); if (!check_get_udp_conntrack_key(tmp_connrecord->key, NULL)) { diff --git a/src/goodbyedpi.c b/src/goodbyedpi.c index 03c85bee..f5f6cbff 100644 --- a/src/goodbyedpi.c +++ b/src/goodbyedpi.c @@ -206,6 +206,9 @@ static void add_filter_str(int proto, int port) { (proto == IPPROTO_UDP ? strlen(udp) : strlen(tcp)) + 16; char *new_filter = malloc(new_filter_size); + if (!new_filter) + return FALSE; + strcpy(new_filter, current_filter); if (proto == IPPROTO_UDP) sprintf(new_filter + strlen(new_filter), udp, port, port); @@ -221,6 +224,9 @@ static void add_ip_id_str(int id) { const char *ipid = " or ip.Id == %d"; char *addfilter = malloc(strlen(ipid) + 16); + if (!addfilter) + return FALSE; + sprintf(addfilter, ipid, id); newstr = repl_str(filter_string, IPID_TEMPLATE, addfilter); @@ -241,6 +247,9 @@ static void add_maxpayloadsize_str(unsigned short maxpayload) { "or (tcp.Payload[0] == 0x16 and tcp.Payload[1] == 0x03 and tcp.Payload[2] <= 0x03): true)"; char *addfilter = malloc(strlen(maxpayloadsize_str) + 16); + if (!addfilter) + return FALSE; + sprintf(addfilter, maxpayloadsize_str, maxpayload); newstr = repl_str(filter_string, MAXPAYLOADSIZE_TEMPLATE, addfilter); diff --git a/src/ttltrack.c b/src/ttltrack.c index acac0612..dbb9c0d0 100644 --- a/src/ttltrack.c +++ b/src/ttltrack.c @@ -146,6 +146,10 @@ static int add_tcp_conntrack(const uint32_t srcip[4], const uint32_t dstip[4], return FALSE; tcp_connrecord_t *tmp_connrecord = malloc(sizeof(tcp_connrecord_t)); + + if (!tmp_connrecord) + return FALSE; + construct_key(srcip, dstip, srcport, dstport, tmp_connrecord->key, is_ipv6); if (!check_get_tcp_conntrack_key(tmp_connrecord->key, NULL)) {