浏览代码

compilation warning fixed

mom040267 11 年之前
父节点
当前提交
9b928bfaf9
共有 2 个文件被更改,包括 7 次插入3 次删除
  1. 1 1
      src/apps/relay/dbdrivers/dbd_mongo.c
  2. 6 2
      src/apps/relay/userdb.c

+ 1 - 1
src/apps/relay/dbdrivers/dbd_mongo.c

@@ -780,7 +780,7 @@ static int mongo_get_ip_list(const char *kind, ip_range_list_t * list) {
     while(mongoc_cursor_next(cursor, &item)) {
     	if (bson_iter_init(&iter, item) && bson_iter_find(&iter, "ip_range") && BSON_ITER_HOLDS_UTF8(&iter)) {
         value = bson_iter_utf8(&iter, &length);
-				add_ip_list_range(value, list);
+		add_ip_list_range(value, list);
       }
     }
     mongoc_cursor_destroy(cursor);

+ 6 - 2
src/apps/relay/userdb.c

@@ -1249,8 +1249,10 @@ void update_white_and_black_lists(void)
 
 /////////////// add ACL record ///////////////////
 
-int add_ip_list_range(const char * range, ip_range_list_t * list)
+int add_ip_list_range(const char * range0, ip_range_list_t * list)
 {
+	char *range = strdup(range0);
+
 	char* separator = strchr(range, '-');
 
 	if (separator) {
@@ -1261,12 +1263,14 @@ int add_ip_list_range(const char * range, ip_range_list_t * list)
 
 	if (make_ioa_addr((const u08bits*) range, 0, &min) < 0) {
 		TURN_LOG_FUNC(TURN_LOG_LEVEL_ERROR, "Wrong address format: %s\n", range);
+		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);
+			free(range);
 			return -1;
 		}
 	} else {
@@ -1279,7 +1283,7 @@ int add_ip_list_range(const char * range, ip_range_list_t * list)
 
 	++(list->ranges_number);
 	list->ranges = (char**) realloc(list->ranges, sizeof(char*) * list->ranges_number);
-	list->ranges[list->ranges_number - 1] = strdup(range);
+	list->ranges[list->ranges_number - 1] = range;
 	list->encaddrsranges = (ioa_addr_range**) realloc(list->encaddrsranges, sizeof(ioa_addr_range*) * list->ranges_number);
 
 	list->encaddrsranges[list->ranges_number - 1] = (ioa_addr_range*) turn_malloc(sizeof(ioa_addr_range));