From b50fc77124af9dc026afc5bd7b3eb953d74b3ec5 Mon Sep 17 00:00:00 2001 From: "Bradley T. Hughes" Date: Thu, 7 Mar 2019 07:00:24 +0100 Subject: [PATCH] Remote turn_free() Do not overload free() with a different API. --- src/apps/common/apputils.c | 10 +++---- src/apps/common/hiredis_libevent2.c | 2 +- src/apps/common/ns_turn_utils.c | 26 +++++------------- src/apps/peer/udpserver.c | 2 +- src/apps/relay/dbdrivers/dbd_mongo.c | 8 +++--- src/apps/relay/dbdrivers/dbd_mysql.c | 24 ++++++++-------- src/apps/relay/dbdrivers/dbd_pgsql.c | 4 +-- src/apps/relay/dbdrivers/dbd_redis.c | 16 +++++------ src/apps/relay/dbdrivers/dbd_sqlite.c | 8 +++--- src/apps/relay/mainrelay.c | 10 +++---- src/apps/relay/netengine.c | 2 +- src/apps/relay/ns_ioalib_engine_impl.c | 16 +++++------ src/apps/relay/turn_admin_server.c | 14 +++++----- src/apps/relay/userdb.c | 38 +++++++++++++------------- src/apps/uclient/uclient.c | 6 ++-- src/client++/TurnMsgLib.h | 6 ++-- src/client/ns_turn_ioaddr.c | 2 +- src/client/ns_turn_msg.c | 2 +- src/ns_turn_defs.h | 3 -- src/server/ns_turn_allocation.c | 14 +++++----- src/server/ns_turn_khash.h | 8 +++--- src/server/ns_turn_maps.c | 26 +++++++++--------- src/server/ns_turn_maps_rtcp.c | 10 +++---- src/server/ns_turn_server.c | 18 ++++++------ 24 files changed, 130 insertions(+), 145 deletions(-) diff --git a/src/apps/common/apputils.c b/src/apps/common/apputils.c index 94ef1ee3..3b285447 100644 --- a/src/apps/common/apputils.c +++ b/src/apps/common/apputils.c @@ -769,9 +769,9 @@ void set_execdir(void) else edir = dirname(_var); if(c_execdir) - turn_free(c_execdir,strlen(c_execdir)+1); + free(c_execdir); c_execdir = turn_strdup(edir); - turn_free(_var,strlen(_var)+1); + free(_var); } } @@ -836,7 +836,7 @@ char* find_config_file(const char *config_file, int print_file_name) full_path_to_config_file = fn; break; } - turn_free(fn,fnsz+1); + free(fn); if(config_file_search_dirs[i][0]!='/' && config_file_search_dirs[i][0]!='.' && c_execdir && c_execdir[0]) { @@ -867,7 +867,7 @@ char* find_config_file(const char *config_file, int print_file_name) break; } } - turn_free(fn,fnsz+1); + free(fn); } ++i; } @@ -1128,7 +1128,7 @@ void convert_oauth_key_data_raw(const oauth_key_data_raw *raw, oauth_key_data *o if(ikm_key) { ns_bcopy(ikm_key,oakd->ikm_key,ikm_key_size); oakd->ikm_key_size = ikm_key_size; - turn_free(ikm_key,ikm_key_size); + free(ikm_key); } } } diff --git a/src/apps/common/hiredis_libevent2.c b/src/apps/common/hiredis_libevent2.c index 0d51a92d..ce1ce56d 100644 --- a/src/apps/common/hiredis_libevent2.c +++ b/src/apps/common/hiredis_libevent2.c @@ -277,7 +277,7 @@ redis_context_handle redisLibeventAttach(struct event_base *base, char *ip0, int e); if (e->rev == NULL || e->wev == NULL) { - turn_free(e, sizeof(struct redisLibeventEvents)); + free(e, sizeof(struct redisLibeventEvents)); return NULL; } diff --git a/src/apps/common/ns_turn_utils.c b/src/apps/common/ns_turn_utils.c index 442d42c6..f9475b39 100644 --- a/src/apps/common/ns_turn_utils.c +++ b/src/apps/common/ns_turn_utils.c @@ -122,7 +122,7 @@ int turn_mutex_init_recursive(turn_mutex* mutex) { &attr)) < 0) { perror("Cannot init mutex"); mutex->data = 0; - turn_free(mutex->mutex,sizeof(pthread_mutex_t)); + free(mutex->mutex); mutex->mutex = NULL; } } @@ -136,7 +136,7 @@ int turn_mutex_destroy(turn_mutex* mutex) { if(mutex && mutex->mutex && mutex->data == MAGIC_CODE) { int ret = 0; ret = pthread_mutex_destroy((pthread_mutex_t*)(mutex->mutex)); - turn_free(mutex->mutex, sizeof(pthread_mutex_t)); + free(mutex->mutex); mutex->mutex=NULL; mutex->data=0; return ret; @@ -319,11 +319,11 @@ static void set_log_file_name_func(char *base, char *f, size_t fsz) if(base1[len]=='/') break; else if(base1[len]=='.') { - turn_free(tail,strlen(tail)+1); + free(tail); tail=turn_strdup(base1+len); base1[len]=0; if(strlen(tail)<2) { - turn_free(tail,strlen(tail)+1); + free(tail); tail = turn_strdup(".log"); } break; @@ -338,8 +338,8 @@ static void set_log_file_name_func(char *base, char *f, size_t fsz) snprintf(f, FILE_STR_LEN, "%s%s%s", base1,logdate,tail); } - turn_free(base1,strlen(base1)+1); - turn_free(tail,strlen(tail)+1); + free(base1); + free(tail); } static void sighup_callback_handler(int signum) @@ -787,18 +787,6 @@ void tm_print_func(void) { pthread_mutex_unlock(&tm); } -extern "C" void turn_free_func(void *ptr, size_t sz, const char* function, int line); -void turn_free_func(void *ptr, size_t sz, const char* function, int line) { - - UNUSED_ARG(sz); - - TM_START(); - - del_tm_ptr(ptr,id); - - free(ptr); -} - extern "C" void *turn_calloc_func(size_t number, size_t size, const char* function, int line); void *turn_calloc_func(size_t number, size_t size, const char* function, int line) { @@ -846,7 +834,7 @@ int is_secure_string(const u08bits *string, int sanitizesql) } else { ret = 1; } - turn_free(s,strlen((char*)s)); + free(s); } return ret; } diff --git a/src/apps/peer/udpserver.c b/src/apps/peer/udpserver.c index b31f25c8..91d200af 100644 --- a/src/apps/peer/udpserver.c +++ b/src/apps/peer/udpserver.c @@ -123,7 +123,7 @@ static server_type* init_server(int verbose, const char* ifname, char **local_ad static int clean_server(server_type* server) { if(server) { if(server->event_base) event_base_free(server->event_base); - turn_free(server,sizeof(server_type)); + free(server); } return 0; } diff --git a/src/apps/relay/dbdrivers/dbd_mongo.c b/src/apps/relay/dbdrivers/dbd_mongo.c index 13b0b470..2ecd761d 100644 --- a/src/apps/relay/dbdrivers/dbd_mongo.c +++ b/src/apps/relay/dbdrivers/dbd_mongo.c @@ -74,7 +74,7 @@ static void MongoFree(MONGO * info) { if(info) { if(info->uri) mongoc_uri_destroy(info->uri); if(info->client) mongoc_client_destroy(info->client); - turn_free(info, sizeof(MONGO)); + free(info); } } @@ -893,7 +893,7 @@ static int mongo_set_realm_option_one(u08bits *realm, unsigned long value, const BSON_APPEND_INT32(&child, _k, 1); bson_append_document_end(&doc, &child); } - turn_free(_k,klen); + free(_k); int ret = -1; @@ -1124,7 +1124,7 @@ static void mongo_reread_realms(secrets_list_t * realms_list) { ur_string_map_put(o_to_realm_new, (const ur_string_map_key_type) _origin, value); - turn_free(_origin,strlen(_origin)+1); + free(_origin); } } } @@ -1173,7 +1173,7 @@ static void mongo_reread_realms(secrets_list_t * realms_list) { } } } - turn_free(_realm,strlen(_realm)+1); + free(_realm); } } update_o_to_realm(o_to_realm_new); diff --git a/src/apps/relay/dbdrivers/dbd_mysql.c b/src/apps/relay/dbdrivers/dbd_mysql.c index fa38361b..9397cf2b 100644 --- a/src/apps/relay/dbdrivers/dbd_mysql.c +++ b/src/apps/relay/dbdrivers/dbd_mysql.c @@ -61,15 +61,15 @@ typedef struct _Myconninfo Myconninfo; static void MyconninfoFree(Myconninfo *co) { if(co) { - if(co->host) turn_free(co->host,strlen(co->host)+1); - if(co->dbname) turn_free(co->dbname, strlen(co->dbname)+1); - if(co->user) turn_free(co->user, strlen(co->user)+1); - if(co->password) turn_free(co->password, strlen(co->password)+1); - if(co->key) turn_free(co->key, strlen(co->key)+1); - if(co->ca) turn_free(co->ca, strlen(co->ca)+1); - if(co->cert) turn_free(co->cert, strlen(co->cert)+1); - if(co->capath) turn_free(co->capath, strlen(co->capath)+1); - if(co->cipher) turn_free(co->cipher, strlen(co->cipher)+1); + if(co->host) free(co->host); + if(co->dbname) free(co->dbname); + if(co->user) free(co->user); + if(co->password) free(co->password); + if(co->key) free(co->key); + if(co->ca) free(co->ca); + if(co->cert) free(co->cert); + if(co->capath) free(co->capath); + if(co->cipher) free(co->cipher); ns_bzero(co,sizeof(Myconninfo)); } } @@ -203,7 +203,7 @@ static Myconninfo *MyconninfoParse(char *userdb, char **errmsg) { s = snext; } - turn_free(s0, strlen(s0)+1); + free(s0); } if(co) { @@ -240,13 +240,13 @@ static MYSQL *get_mydb_connection(void) { if(!co) { if(errmsg) { TURN_LOG_FUNC(TURN_LOG_LEVEL_ERROR, "Cannot open MySQL DB connection <%s>, connection string format error: %s\n",pud->userdb,errmsg); - turn_free(errmsg,strlen(errmsg)+1); + free(errmsg); } else { TURN_LOG_FUNC(TURN_LOG_LEVEL_ERROR, "Cannot open MySQL DB connection <%s>, connection string format error\n",pud->userdb); } } else if(errmsg) { TURN_LOG_FUNC(TURN_LOG_LEVEL_ERROR, "Cannot open MySQL DB connection <%s>, connection string format error: %s\n",pud->userdb,errmsg); - turn_free(errmsg,strlen(errmsg)+1); + free(errmsg); MyconninfoFree(co); } else if(!(co->dbname)) { TURN_LOG_FUNC(TURN_LOG_LEVEL_ERROR, "MySQL Database name is not provided: <%s>\n",pud->userdb); diff --git a/src/apps/relay/dbdrivers/dbd_pgsql.c b/src/apps/relay/dbdrivers/dbd_pgsql.c index 0041caed..548a696e 100644 --- a/src/apps/relay/dbdrivers/dbd_pgsql.c +++ b/src/apps/relay/dbdrivers/dbd_pgsql.c @@ -58,14 +58,14 @@ static PGconn *get_pqdb_connection(void) { if(!co) { if(errmsg) { TURN_LOG_FUNC(TURN_LOG_LEVEL_ERROR, "Cannot open PostgreSQL DB connection <%s>, connection string format error: %s\n",pud->userdb,errmsg); - turn_free(errmsg,strlen(errmsg)+1); + free(errmsg); } else { TURN_LOG_FUNC(TURN_LOG_LEVEL_ERROR, "Cannot open PostgreSQL DB connection: <%s>, unknown connection string format error\n",pud->userdb); } } else { PQconninfoFree(co); if(errmsg) - turn_free(errmsg,strlen(errmsg)+1); + free(errmsg); pqdbconnection = PQconnectdb(pud->userdb); if(!pqdbconnection) { TURN_LOG_FUNC(TURN_LOG_LEVEL_ERROR, "Cannot open PostgreSQL DB connection: <%s>, runtime error\n",pud->userdb); diff --git a/src/apps/relay/dbdrivers/dbd_redis.c b/src/apps/relay/dbdrivers/dbd_redis.c index 0854ad7d..c2e2c5f3 100644 --- a/src/apps/relay/dbdrivers/dbd_redis.c +++ b/src/apps/relay/dbdrivers/dbd_redis.c @@ -58,9 +58,9 @@ typedef struct _Ryconninfo Ryconninfo; static void RyconninfoFree(Ryconninfo *co) { if(co) { - if(co->host) turn_free(co->host, strlen(co->host)+1); - if(co->dbname) turn_free(co->dbname, strlen(co->dbname)+1); - if(co->password) turn_free(co->password, strlen(co->password)+1); + if(co->host) free(co->host); + if(co->dbname) free(co->dbname); + if(co->password) free(co->password); ns_bzero(co,sizeof(Ryconninfo)); } } @@ -145,7 +145,7 @@ static Ryconninfo *RyconninfoParse(const char *userdb, char **errmsg) { s = snext; } - turn_free(s0, strlen(s0)+1); + free(s0); } if(co) { @@ -170,13 +170,13 @@ redis_context_handle get_redis_async_connection(struct event_base *base, const c if (!co) { if (errmsg) { TURN_LOG_FUNC(TURN_LOG_LEVEL_ERROR, "Cannot open Redis DB connection <%s>, connection string format error: %s\n", connection_string, errmsg); - turn_free(errmsg,strlen(errmsg)+1); + free(errmsg); } else { TURN_LOG_FUNC(TURN_LOG_LEVEL_ERROR, "Cannot open Redis DB connection <%s>, connection string format error\n", connection_string); } } else if (errmsg) { TURN_LOG_FUNC(TURN_LOG_LEVEL_ERROR, "Cannot open Redis DB connection <%s>, connection string format error: %s\n", connection_string, errmsg); - turn_free(errmsg,strlen(errmsg)+1); + free(errmsg); RyconninfoFree(co); } else { @@ -284,13 +284,13 @@ static redisContext *get_redis_connection(void) { if (!co) { if (errmsg) { TURN_LOG_FUNC(TURN_LOG_LEVEL_ERROR, "Cannot open Redis DB connection <%s>, connection string format error: %s\n", pud->userdb, errmsg); - turn_free(errmsg,strlen(errmsg)+1); + free(errmsg); } else { TURN_LOG_FUNC(TURN_LOG_LEVEL_ERROR, "Cannot open Redis DB connection <%s>, connection string format error\n", pud->userdb); } } else if (errmsg) { TURN_LOG_FUNC(TURN_LOG_LEVEL_ERROR, "Cannot open Redis DB connection <%s>, connection string format error: %s\n", pud->userdb, errmsg); - turn_free(errmsg,strlen(errmsg)+1); + free(errmsg); RyconninfoFree(co); } else { char ip[256] = "\0"; diff --git a/src/apps/relay/dbdrivers/dbd_sqlite.c b/src/apps/relay/dbdrivers/dbd_sqlite.c index bee49285..3bbacd38 100644 --- a/src/apps/relay/dbdrivers/dbd_sqlite.c +++ b/src/apps/relay/dbdrivers/dbd_sqlite.c @@ -144,7 +144,7 @@ static void fix_user_directory(char *dir0) { strncpy(dir_fixed,home,szh); strncpy(dir_fixed+szh,dir+1,(sz-szh-1)); strncpy(dir0,dir_fixed,sz); - turn_free(dir_fixed,sz); + free(dir_fixed); } } @@ -276,7 +276,7 @@ static int sqlite_get_user_key(u08bits *usname, u08bits *realm, hmackey_t key) } else { ret = 0; } - turn_free(kval,strlen(kval)+1); + free(kval); } } else { const char* errmsg = sqlite3_errmsg(sqliteconnection); @@ -1040,7 +1040,7 @@ static void sqlite_reread_realms(secrets_list_t * realms_list) ur_string_map_value_type value = rval; ur_string_map_put(o_to_realm_new, (const ur_string_map_key_type) oval, value); - turn_free(oval,strlen(oval)+1); + free(oval); } else if (res == SQLITE_DONE) { break; @@ -1116,7 +1116,7 @@ static void sqlite_reread_realms(secrets_list_t * realms_list) TURN_LOG_FUNC(TURN_LOG_LEVEL_ERROR, "Unknown realm option: %s\n", oval); } - turn_free(rval,strlen(rval)+1); + free(rval); } else if (res == SQLITE_DONE) { break; diff --git a/src/apps/relay/mainrelay.c b/src/apps/relay/mainrelay.c index 964f86f5..6c5a1996 100644 --- a/src/apps/relay/mainrelay.c +++ b/src/apps/relay/mainrelay.c @@ -1326,7 +1326,7 @@ static void set_option(int c, char *value) ioa_addr_add_mapping(&apub,&apriv); } } - turn_free(nval,strlen(nval)+1); + free(nval); } else { if(turn_params.external_ip) { TURN_LOG_FUNC(TURN_LOG_LEVEL_ERROR, "You cannot define external IP more than once in the configuration\n"); @@ -1334,7 +1334,7 @@ static void set_option(int c, char *value) turn_params.external_ip = (ioa_addr*)allocate_super_memory_engine(turn_params.listener.ioa_eng, sizeof(ioa_addr)); if(make_ioa_addr((const u08bits*)value,0,turn_params.external_ip)<0) { TURN_LOG_FUNC(TURN_LOG_LEVEL_ERROR,"-X : Wrong address format: %s\n",value); - turn_free(turn_params.external_ip,sizeof(ioa_addr)); + free(turn_params.external_ip); turn_params.external_ip = NULL; } } @@ -1682,7 +1682,7 @@ static void read_config_file(int argc, char **argv, int pass) config_file); if (full_path_to_config_file) { - turn_free(full_path_to_config_file, strlen(full_path_to_config_file)+1); + free(full_path_to_config_file); full_path_to_config_file = NULL; } } @@ -2537,7 +2537,7 @@ static void adjust_key_file_name(char *fn, const char* file_title, int critical) fn[sizeof(turn_params.cert_file)-1]=0; if(full_path_to_file) - turn_free(full_path_to_file,strlen(full_path_to_file)+1); + free(full_path_to_file); return; } @@ -2549,7 +2549,7 @@ static void adjust_key_file_name(char *fn, const char* file_title, int critical) TURN_LOG_FUNC(TURN_LOG_LEVEL_WARNING,"WARNING: cannot start TLS and DTLS listeners because %s file is not set properly\n",file_title); } if(full_path_to_file) - turn_free(full_path_to_file,strlen(full_path_to_file)+1); + free(full_path_to_file); return; } } diff --git a/src/apps/relay/netengine.c b/src/apps/relay/netengine.c index d7f54130..68240c7c 100644 --- a/src/apps/relay/netengine.c +++ b/src/apps/relay/netengine.c @@ -258,7 +258,7 @@ static void del_alt_server(const char *saddr, int default_port, turn_server_addr addr_cpy(&(new_addrs[j]),&(list->addrs[j+1])); } - turn_free(list->addrs,0); + free(list->addrs); list->addrs = new_addrs; list->size -= 1; diff --git a/src/apps/relay/ns_ioalib_engine_impl.c b/src/apps/relay/ns_ioalib_engine_impl.c index 59445268..a948cd46 100644 --- a/src/apps/relay/ns_ioalib_engine_impl.c +++ b/src/apps/relay/ns_ioalib_engine_impl.c @@ -281,7 +281,7 @@ static void pop_elem_from_buffer_list(stun_buffer_list *bufs) stun_buffer_list_elem *ret = bufs->head; bufs->head=ret->next; --bufs->tsz; - turn_free(ret,sizeof(stun_buffer_list_elem)); + free(ret); } } @@ -327,7 +327,7 @@ static void free_blist_elem(ioa_engine_handle e, stun_buffer_list_elem *buf_elem if(e && (e->bufs.tszbufs), buf_elem); } else { - turn_free(buf_elem,sizeof(stun_buffer_list_elem)); + free(buf_elem); } } } @@ -603,10 +603,10 @@ void delete_ioa_timer(ioa_timer_handle th) stop_ioa_timer(th); timer_event *te = (timer_event *)th; if(te->txt) { - turn_free(te->txt,strlen(te->txt)+1); + free(te->txt); te->txt = NULL; } - turn_free(th,sizeof(timer_event)); + free(th); } } @@ -1529,7 +1529,7 @@ void close_ioa_socket(ioa_socket_handle s) } if(s->special_session) { - turn_free(s->special_session,s->special_session_size); + free(s->special_session); s->special_session = NULL; } s->special_session_size = 0; @@ -1543,7 +1543,7 @@ void close_ioa_socket(ioa_socket_handle s) s->sub_session = NULL; s->magic = 0; - turn_free(s,sizeof(ioa_socket)); + free(s); } } @@ -2552,7 +2552,7 @@ void close_ioa_socket_after_processing_if_necessary(ioa_socket_handle s) if (s && ioa_socket_tobeclosed(s)) { if(s->special_session) { - turn_free(s->special_session,s->special_session_size); + free(s->special_session); s->special_session = NULL; } s->special_session_size = 0; @@ -2738,7 +2738,7 @@ static void eventcb_bev(struct bufferevent *bev, short events, void *arg) s->tobeclosed = 1; if(s->special_session) { - turn_free(s->special_session,s->special_session_size); + free(s->special_session); s->special_session = NULL; } s->special_session_size = 0; diff --git a/src/apps/relay/turn_admin_server.c b/src/apps/relay/turn_admin_server.c index bbc58350..561cb63d 100644 --- a/src/apps/relay/turn_admin_server.c +++ b/src/apps/relay/turn_admin_server.c @@ -631,14 +631,14 @@ static void print_sessions(struct cli_session* cs, const char* pn, int exact_mat } if(arg.user_counters) - turn_free(arg.user_counters,sizeof(size_t)*arg.users_number); + free(arg.user_counters); if(arg.user_names) { size_t i; for(i=0;ifd = -1; } - turn_free(cs,sizeof(struct cli_session)); + free(cs); } } @@ -1072,7 +1072,7 @@ static int run_cli_input(struct cli_session* cs, const char *buf0, unsigned int type_cli_cursor(cs); } - turn_free(buf,len+1); + free(buf); } return ret; @@ -1437,7 +1437,7 @@ void admin_server_receive_message(struct bufferevent *bev, void *ptr) if (ur_map_get(adminserver.sessions, (ur_map_key_type)tsi->id, &t) && t) { struct turn_session_info *old = (struct turn_session_info*)t; turn_session_info_clean(old); - turn_free(old,sizeof(struct turn_session_info)); + free(old); ur_map_del(adminserver.sessions, (ur_map_key_type)tsi->id, NULL); } @@ -1452,7 +1452,7 @@ void admin_server_receive_message(struct bufferevent *bev, void *ptr) if(tsi) { turn_session_info_clean(tsi); - turn_free(tsi,sizeof(struct turn_session_info)); + free(tsi); } } diff --git a/src/apps/relay/userdb.c b/src/apps/relay/userdb.c index 9ffd99b4..08abffdd 100644 --- a/src/apps/relay/userdb.c +++ b/src/apps/relay/userdb.c @@ -174,7 +174,7 @@ int get_realm_options_by_origin(char *origin, realm_options_t* ro) realm_params_t rp; get_realm_data(realm, &rp); ns_bcopy(&(rp.options),ro,sizeof(realm_options_t)); - turn_free(realm,strlen(realm)+1); + free(realm); return 1; } else { TURN_MUTEX_UNLOCK(&o_to_realm_mutex); @@ -262,10 +262,10 @@ void clean_secrets_list(secrets_list_t *sl) size_t i = 0; for(i = 0;isz;++i) { if(sl->secrets[i]) { - turn_free(sl->secrets[i], strlen(sl->secrets[i])+1); + free(sl->secrets[i]); } } - turn_free(sl->secrets,(sl->sz)*sizeof(char*)); + free(sl->secrets); sl->secrets = NULL; sl->sz = 0; } @@ -583,7 +583,7 @@ int get_user_key(int in_oauth, int *out_oauth, int *max_session_time, u08bits *u if(pwd) { if(pwd_length<1) { - turn_free(pwd,strlen(pwd)+1); + free(pwd); } else { if(stun_produce_integrity_key_str((u08bits*)usname, realm, (u08bits*)pwd, key, SHATYPE_DEFAULT)>=0) { @@ -597,7 +597,7 @@ int get_user_key(int in_oauth, int *out_oauth, int *max_session_time, u08bits *u ret = 0; } } - turn_free(pwd,pwd_length); + free(pwd); if(ret==0) break; @@ -683,7 +683,7 @@ int check_new_allocation_quota(u08bits *user, int oauth, u08bits *realm) } else { ++(rp->status.total_current_allocs); } - turn_free(username,strlen((char*)username)+1); + free(username); ur_string_map_unlock(rp->status.alloc_counters); } return ret; @@ -706,7 +706,7 @@ void release_allocation_quota(u08bits *user, int oauth, u08bits *realm) if (rp->status.total_current_allocs) --(rp->status.total_current_allocs); ur_string_map_unlock(rp->status.alloc_counters); - turn_free(username, strlen((char*)username)+1); + free(username); } } @@ -726,7 +726,7 @@ int add_static_user_account(char *user) usname[ulen]=0; if(SASLprep((u08bits*)usname)<0) { TURN_LOG_FUNC(TURN_LOG_LEVEL_ERROR, "Wrong user name: %s\n",user); - turn_free(usname,sizeof(char)*(ulen+1)); + free(usname); return -1; } s = skip_blanks(s+1); @@ -738,8 +738,8 @@ int add_static_user_account(char *user) TURN_LOG_FUNC(TURN_LOG_LEVEL_ERROR, "Wrong key format: %s\n",s); } if(convert_string_key_to_binary(keysource, *key, sz)<0) { TURN_LOG_FUNC(TURN_LOG_LEVEL_ERROR, "Wrong key: %s\n",s); - turn_free(usname,strlen(usname)+1); - turn_free(key,sizeof(hmackey_t)); + free(usname); + free(key); return -1; } } else { @@ -752,7 +752,7 @@ int add_static_user_account(char *user) ur_string_map_unlock(turn_params.default_users_db.ram_db.static_accounts); } turn_params.default_users_db.ram_db.users_number++; - turn_free(usname,strlen(usname)+1); + free(usname); return 0; } } @@ -1178,8 +1178,8 @@ void ip_list_free(ip_range_list_t *l) { if(l) { if(l->rs) - turn_free(l->rs,l->ranges_number * sizeof(ip_range_t)); - turn_free(l,sizeof(ip_range_list_t)); + free(l->rs); + free(l); } } @@ -1221,14 +1221,14 @@ int add_ip_list_range(const char * range0, const char * realm, ip_range_list_t * if (make_ioa_addr((const u08bits*) range, 0, &min) < 0) { TURN_LOG_FUNC(TURN_LOG_LEVEL_ERROR, "Wrong address format: %s\n", range); - turn_free(range,0); + free(range); return -1; } if (separator) { if (make_ioa_addr((const u08bits*) separator + 1, 0, &max) < 0) { TURN_LOG_FUNC(TURN_LOG_LEVEL_ERROR, "Wrong address format: %s\n", separator + 1); - turn_free(range,0); + free(range); return -1; } } else { @@ -1246,7 +1246,7 @@ int add_ip_list_range(const char * range0, const char * realm, ip_range_list_t * STRCPY(list->rs[list->ranges_number - 1].realm,realm); else list->rs[list->ranges_number - 1].realm[0]=0; - turn_free(range,0); + free(range); ioa_addr_range_set(&(list->rs[list->ranges_number - 1].enc), &min, &max); return 0; @@ -1266,14 +1266,14 @@ int check_ip_list_range(const char * range0) if (make_ioa_addr((const u08bits*) range, 0, &min) < 0) { TURN_LOG_FUNC(TURN_LOG_LEVEL_ERROR, "Wrong address range format: %s\n", range); - turn_free(range,0); + free(range); return -1; } if (separator) { if (make_ioa_addr((const u08bits*) separator + 1, 0, &max) < 0) { TURN_LOG_FUNC(TURN_LOG_LEVEL_ERROR, "Wrong address range format: %s\n", separator + 1); - turn_free(range,0); + free(range); return -1; } } else { @@ -1284,7 +1284,7 @@ int check_ip_list_range(const char * range0) if (separator) *separator = '-'; - turn_free(range,0); + free(range); return 0; } diff --git a/src/apps/uclient/uclient.c b/src/apps/uclient/uclient.c index 271bf9f3..33c5c94b 100644 --- a/src/apps/uclient/uclient.c +++ b/src/apps/uclient/uclient.c @@ -148,14 +148,14 @@ static void uc_delete_session_elem_data(app_ur_session* cdi) { socket_closesocket(cdi->pinfo.tcp_conn[i]->tcp_data_fd); cdi->pinfo.tcp_conn[i]->tcp_data_fd=-1; } - turn_free(cdi->pinfo.tcp_conn[i], 111); + free(cdi->pinfo.tcp_conn[i]); cdi->pinfo.tcp_conn[i]=NULL; } } } cdi->pinfo.tcp_conn_number=0; if(cdi->pinfo.tcp_conn) { - turn_free(cdi->pinfo.tcp_conn, 111); + free(cdi->pinfo.tcp_conn); cdi->pinfo.tcp_conn=NULL; } } @@ -1586,7 +1586,7 @@ void start_mclient(const char *remote_address, int port, (unsigned long)min_jitter, (unsigned long)max_jitter); - turn_free(elems,0); + free(elems); } /////////////////////////////////////////// diff --git a/src/client++/TurnMsgLib.h b/src/client++/TurnMsgLib.h index f91d4f39..53b962c8 100644 --- a/src/client++/TurnMsgLib.h +++ b/src/client++/TurnMsgLib.h @@ -219,7 +219,7 @@ public: */ virtual ~StunAttr() { if(_value) - turn_free(_value,_sz); + free(_value,_sz); } /** @@ -237,7 +237,7 @@ public: if(sz>0xFFFF) throw WrongStunAttrFormatException(); if(_value) - turn_free(_value,_sz); + free(_value,_sz); _sz = sz; _value=(u08bits*)malloc(_sz); if(value) @@ -588,7 +588,7 @@ public: */ virtual ~StunMsg() { if(_deallocate && _buffer) { - turn_free(_buffer, _allocated_sz); + free(_buffer, _allocated_sz); } } diff --git a/src/client/ns_turn_ioaddr.c b/src/client/ns_turn_ioaddr.c index 6056a61d..352ecbbe 100644 --- a/src/client/ns_turn_ioaddr.c +++ b/src/client/ns_turn_ioaddr.c @@ -329,7 +329,7 @@ int make_ioa_addr_from_full_string(const u08bits* saddr, int default_port, ioa_a port = default_port; ret = make_ioa_addr((u08bits*)sa,port,addr); } - turn_free(s,strlen(s)+1); + free(s); return ret; } diff --git a/src/client/ns_turn_msg.c b/src/client/ns_turn_msg.c index edfb39b7..db567ff5 100644 --- a/src/client/ns_turn_msg.c +++ b/src/client/ns_turn_msg.c @@ -241,7 +241,7 @@ int stun_produce_integrity_key_str(u08bits *uname, u08bits *realm, u08bits *upwd MD5_Final(key,&ctx); } - turn_free(str,sz+1); + free(str); return 0; } diff --git a/src/ns_turn_defs.h b/src/ns_turn_defs.h index 71971f1f..ab4b7738 100644 --- a/src/ns_turn_defs.h +++ b/src/ns_turn_defs.h @@ -118,7 +118,6 @@ static inline u64bits _ioa_ntoh64(u64bits v) #define TURN_LOG_FUNC(level, ...) printf (__VA_ARGS__) void tm_print_func(void); - void turn_free_func(void *ptr, size_t sz, const char* function, int line); void *turn_calloc_func(size_t number, size_t size, const char* function, int line); char *turn_strdup_func(const char* s, const char* function, int line); void* debug_ptr_add_func(void *ptr, const char* function, int line); @@ -127,7 +126,6 @@ static inline u64bits _ioa_ntoh64(u64bits v) #define debug_ptr_add(ptr) debug_ptr_add_func((ptr),__FUNCTION__,__LINE__) #define debug_ptr_del(ptr) debug_ptr_del_func((ptr),__FUNCTION__,__LINE__) #define tm_print() tm_print_func() -#define turn_free(ptr,sz) turn_free_func((ptr),(size_t)(sz),__FUNCTION__,__LINE__) #define turn_calloc(number, sz) turn_calloc_func((number),(size_t)(sz),__FUNCTION__,__LINE__) #define turn_strdup(s) turn_strdup_func((s),__FUNCTION__,__LINE__) @@ -138,7 +136,6 @@ static inline u64bits _ioa_ntoh64(u64bits v) #define debug_ptr_add(ptr) #define debug_ptr_del(ptr) #define tm_print() -#define turn_free(ptr,sz) free((ptr)) #define turn_calloc(number, sz) calloc((number),(size_t)(sz)) #define turn_strdup(s) strdup((s)) diff --git a/src/server/ns_turn_allocation.c b/src/server/ns_turn_allocation.c index fb493381..33b3f650 100644 --- a/src/server/ns_turn_allocation.c +++ b/src/server/ns_turn_allocation.c @@ -64,7 +64,7 @@ void clear_allocation(allocation *a) a->tcs.elems[i] = NULL; } } - turn_free(a->tcs.elems,sz*sizeof(tcp_connection*)); + free(a->tcs.elems); a->tcs.elems = NULL; } a->tcs.sz = 0; @@ -222,10 +222,10 @@ static void free_turn_permission_hashtable(turn_permission_hashtable *map) if(slot->info.allocated) { turn_permission_clean(&(slot->info)); } - turn_free(slot,sizeof(turn_permission_slot)); + free(slot); } } - turn_free(parray->extra_slots, parray->extra_sz * sizeof(turn_permission_slot*)); + free(parray->extra_slots); parray->extra_slots = NULL; } parray->extra_sz = 0; @@ -521,11 +521,11 @@ void ch_map_clean(ch_map* map) if(chi->allocated) { ch_info_clean(chi); } - turn_free(chi,sizeof(ch_info)); + free(chi); a->extra_chns[i] = NULL; } } - turn_free(a->extra_chns, sizeof(ch_info*)*sz); + free(a->extra_chns); a->extra_chns = NULL; } a->extra_sz = 0; @@ -638,7 +638,7 @@ void delete_tcp_connection(tcp_connection *tc) } IOA_CLOSE_SOCKET(tc->client_s); IOA_CLOSE_SOCKET(tc->peer_s); - turn_free(tc,sizeof(tcp_connection)); + free(tc); } } @@ -711,7 +711,7 @@ void clear_unsent_buffer(unsent_buffer *ub) ub->bufs[sz] = NULL; } } - turn_free(ub->bufs,sizeof(ioa_network_buffer_handle) * ub->sz); + free(ub->bufs); ub->bufs = NULL; } ub->sz = 0; diff --git a/src/server/ns_turn_khash.h b/src/server/ns_turn_khash.h index 4f596d3d..ae258c8c 100644 --- a/src/server/ns_turn_khash.h +++ b/src/server/ns_turn_khash.h @@ -130,9 +130,9 @@ static const double __ac_HASH_UPPER = 0.77; static inline void kh_destroy_##name(kh_##name##_t *h) \ { \ if (h) { \ - turn_free(h->keys,h->keys_size); turn_free(h->flags,h->flags_size); \ - turn_free(h->vals, h->vals_size); \ - turn_free(h, sizeof(kh_##name##_t)); \ + free(h->keys); free(h->flags); \ + free(h->vals); \ + free(h); \ } \ } \ static inline void kh_clear_##name(kh_##name##_t *h) \ @@ -217,7 +217,7 @@ static const double __ac_HASH_UPPER = 0.77; h->vals_size = new_n_buckets * sizeof(khval_t); \ } \ } \ - turn_free(h->flags, h->flags_size); \ + free(h->flags); \ h->flags = new_flags; \ h->flags_size = new_flags_size; \ h->n_buckets = new_n_buckets; \ diff --git a/src/server/ns_turn_maps.c b/src/server/ns_turn_maps.c index cc484737..85626ab8 100644 --- a/src/server/ns_turn_maps.c +++ b/src/server/ns_turn_maps.c @@ -61,7 +61,7 @@ static int ur_map_init(ur_map* map) { ur_map* ur_map_create() { ur_map *map=(ur_map*)malloc(sizeof(ur_map)); if(ur_map_init(map)<0) { - turn_free(map,sizeof(ur_map)); + free(map); return NULL; } return map; @@ -173,7 +173,7 @@ void ur_map_free(ur_map** map) { (*map)->h=NULL; (*map)->magic=0; TURN_MUTEX_DESTROY(&((*map)->mutex)); - turn_free(*map,sizeof(ur_map)); + free(*map); *map=NULL; } } @@ -444,10 +444,10 @@ void lm_map_clean(lm_map* map) ur_map_key_type *keyp = a->extra_keys[i]; if(keyp) { *keyp = 0; - turn_free(keyp,sizeof(ur_map_key_type)); + free(keyp); } } - turn_free(a->extra_keys,esz * sizeof(ur_map_key_type)); + free(a->extra_keys); a->extra_keys = NULL; } if(a->extra_values) { @@ -455,10 +455,10 @@ void lm_map_clean(lm_map* map) ur_map_value_type *valuep = a->extra_values[i]; if(valuep) { *valuep = 0; - turn_free(valuep,sizeof(ur_map_value_type)); + free(valuep); } } - turn_free(a->extra_values,esz * sizeof(ur_map_value_type)); + free(a->extra_values); a->extra_values = NULL; } } @@ -588,7 +588,7 @@ int lm_map_foreach_arg(lm_map* map, foreachcb_arg_type func, void* arg) static void addr_list_free(addr_list_header* slh) { if(slh) { if(slh->extra_list) { - turn_free(slh->extra_list,sizeof(addr_elem)*(slh->extra_sz)); + free(slh->extra_list); } ns_bzero(slh,sizeof(addr_list_header)); } @@ -967,10 +967,10 @@ static void string_list_free(string_list_header* slh, ur_string_map_func del_val while(list) { string_elem *elem=(string_elem*)list; string_list* tail=elem->list.next; - if(elem->key) turn_free(elem->key,elem->key_size); + if(elem->key) free(elem->key); if(del_value_func && elem->value) del_value_func(elem->value); - turn_free(elem,sizeof(string_elem)); + free(elem); list=tail; } slh->list=NULL; @@ -994,10 +994,10 @@ static string_list* string_list_remove(string_list* sl, const ur_string_map_key_ string_elem *elem=(string_elem*)sl; string_list* tail=elem->list.next; if(strcmp(elem->key,key)==0) { - turn_free(elem->key,elem->key_size); + free(elem->key); if(del_value_func) del_value_func(elem->value); - turn_free(elem,sizeof(string_elem)); + free(elem); if(counter) *counter+=1; sl=string_list_remove(tail, key, del_value_func, counter); } else { @@ -1069,7 +1069,7 @@ static int ur_string_map_valid(const ur_string_map *map) { ur_string_map* ur_string_map_create(ur_string_map_func del_value_func) { ur_string_map *map=(ur_string_map*)malloc(sizeof(ur_string_map)); if(ur_string_map_init(map)<0) { - turn_free(map,sizeof(ur_string_map)); + free(map); return NULL; } map->del_value_func = del_value_func; @@ -1166,7 +1166,7 @@ void ur_string_map_free(ur_string_map** map) { } (*map)->magic=0; TURN_MUTEX_DESTROY(&((*map)->mutex)); - turn_free(*map,sizeof(ur_string_map)); + free(*map); *map=NULL; } } diff --git a/src/server/ns_turn_maps_rtcp.c b/src/server/ns_turn_maps_rtcp.c index e996f590..7878a105 100644 --- a/src/server/ns_turn_maps_rtcp.c +++ b/src/server/ns_turn_maps_rtcp.c @@ -90,7 +90,7 @@ static void rtcp_alloc_free(ur_map_value_type value) rtcp_alloc_type *at = (rtcp_alloc_type *)value; if (at) { IOA_CLOSE_SOCKET(at->s); - turn_free(at,sizeof(rtcp_alloc_type)); + free(at); } } @@ -98,7 +98,7 @@ static void rtcp_alloc_free_savefd(ur_map_value_type value) { rtcp_alloc_type *at = (rtcp_alloc_type *) value; if (at) { - turn_free(at,sizeof(rtcp_alloc_type)); + free(at); } } @@ -180,7 +180,7 @@ rtcp_map* rtcp_map_create(ioa_engine_handle e) { rtcp_map *map=(rtcp_map*)malloc(sizeof(rtcp_map)); ns_bzero(map,sizeof(rtcp_map)); if(rtcp_map_init(map,e)<0) { - turn_free(map,sizeof(rtcp_map)); + free(map); return NULL; } return map; @@ -204,7 +204,7 @@ int rtcp_map_put(rtcp_map* map, rtcp_token_type token, ioa_socket_handle s) { int ret = ur_map_put(map->map,token,(ur_map_value_type)value); //TURN_LOG_FUNC(TURN_LOG_LEVEL_INFO,"%s: 111.111: ret=%d, token=%llu\n",__FUNCTION__,ret,token); TURN_MUTEX_UNLOCK(&map->mutex); - if(ret<0) turn_free(value,sizeof(rtcp_alloc_type)); + if(ret<0) free(value); return ret; } } @@ -241,7 +241,7 @@ void rtcp_map_free(rtcp_map** map) { (*map)->magic=0; TURN_MUTEX_UNLOCK(&((*map)->mutex)); TURN_MUTEX_DESTROY(&((*map)->mutex)); - turn_free(*map,sizeof(rtcp_map)); + free(*map); *map=NULL; } } diff --git a/src/server/ns_turn_server.c b/src/server/ns_turn_server.c index 7115bd46..cc50ee18 100644 --- a/src/server/ns_turn_server.c +++ b/src/server/ns_turn_server.c @@ -372,7 +372,7 @@ void turn_session_info_init(struct turn_session_info* tsi) { void turn_session_info_clean(struct turn_session_info* tsi) { if(tsi) { if(tsi->extra_peers_data) { - turn_free(tsi->extra_peers_data, sizeof(addr_data)*(tsi->extra_peers_size)); + free(tsi->extra_peers_data); } turn_session_info_init(tsi); } @@ -615,13 +615,13 @@ static int mobile_id_to_string(mobile_id_t mid, char *dst, size_t dst_sz) return -1; if(!output_length || (output_length+1 > dst_sz)) { - turn_free(s, output_length); + free(s); return -1; } ns_bcopy(s, dst, output_length); - turn_free(s, output_length); + free(s); dst[output_length] = 0; @@ -644,7 +644,7 @@ static mobile_id_t string_to_mobile_id(char* src) mid = *((mobile_id_t*)out); } - turn_free(out, output_length); + free(out); } } @@ -786,7 +786,7 @@ static void delete_ur_map_ss(void *p) { IOA_CLOSE_SOCKET(ss->client_socket); clear_allocation(get_allocation_ss(ss)); IOA_EVENT_DEL(ss->to_be_allocated_timeout_ev); - turn_free(p,sizeof(ts_ur_super_session)); + free(p); } } @@ -3624,8 +3624,8 @@ static int handle_turn_command(turn_turnserver *server, ts_ur_super_session *ss, if(!strncmp(ss->origin,corigin,STUN_MAX_ORIGIN_SIZE)) { origin_found = 1; } - turn_free(corigin,sarlen+1); - turn_free(o,sarlen+1); + free(corigin); + free(o); } } sar = stun_attr_get_next_str(ioa_network_buffer_data(in_buffer->nbh), @@ -3678,8 +3678,8 @@ static int handle_turn_command(turn_turnserver *server, ts_ur_super_session *ss, __FUNCTION__, o); } strncpy(ss->origin,corigin,STUN_MAX_ORIGIN_SIZE); - turn_free(corigin,sarlen+1); - turn_free(o,sarlen+1); + free(corigin); + free(o); origin_found = get_realm_options_by_origin(ss->origin,&(ss->realm_options)); } }