diff --git a/src/server/ns_turn_ratelimit.c b/src/server/ns_turn_ratelimit.c index e369b614..7bfe25ab 100644 --- a/src/server/ns_turn_ratelimit.c +++ b/src/server/ns_turn_ratelimit.c @@ -82,12 +82,10 @@ bool ratelimit_is_address_limited(ioa_addr *address, int max_requests, int windo ur_addr_map_value_type ratelimit_ptr = 0; - ioa_addr *address_new = (ioa_addr *)malloc(sizeof(ioa_addr)); - *address_new = *address; - addr_set_port(address_new, 0); + ioa_addr address_new = *address; + addr_set_port(&address_new, 0); - if (ur_addr_map_get(rate_limit_map, address_new, &ratelimit_ptr)) { - free(address_new); + if (ur_addr_map_get(rate_limit_map, &address_new, &ratelimit_ptr)) { ratelimit_entry *rateLimitEntry = (ratelimit_entry *)(void *)(ur_map_value_type)ratelimit_ptr; TURN_MUTEX_LOCK(&(rateLimitEntry->mutex)); @@ -115,8 +113,7 @@ bool ratelimit_is_address_limited(ioa_addr *address, int max_requests, int windo } else { // New entry, allow response TURN_MUTEX_LOCK(&rate_limit_main_mutex); - ratelimit_add_node(address_new); - free(address_new); + ratelimit_add_node(&address_new); TURN_MUTEX_UNLOCK(&rate_limit_main_mutex); return 0; }