diff options
author | Matthias Wachs <wachs@net.in.tum.de> | 2013-06-28 14:01:40 +0000 |
---|---|---|
committer | Matthias Wachs <wachs@net.in.tum.de> | 2013-06-28 14:01:40 +0000 |
commit | 9b0f977e2c87c23a7537661b6b8d305e01fd3a11 (patch) | |
tree | e8f8f327668ebe5a4c41c13d775651a1a1e8ece9 /src/ats/gnunet-service-ats-solver_proportional.c | |
parent | e33853d4af1d4a9caf64cba3eb2f738b737b0a8f (diff) | |
download | gnunet-9b0f977e2c87c23a7537661b6b8d305e01fd3a11.tar.gz gnunet-9b0f977e2c87c23a7537661b6b8d305e01fd3a11.zip |
fixing memory leak: unused hashmap
fixing segfault by adding NULL check
Diffstat (limited to 'src/ats/gnunet-service-ats-solver_proportional.c')
-rw-r--r-- | src/ats/gnunet-service-ats-solver_proportional.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/ats/gnunet-service-ats-solver_proportional.c b/src/ats/gnunet-service-ats-solver_proportional.c index 51246f152..d6b277406 100644 --- a/src/ats/gnunet-service-ats-solver_proportional.c +++ b/src/ats/gnunet-service-ats-solver_proportional.c | |||
@@ -264,8 +264,6 @@ struct GAS_PROPORTIONAL_Handle | |||
264 | */ | 264 | */ |
265 | void *get_preferences_cls; | 265 | void *get_preferences_cls; |
266 | 266 | ||
267 | struct GNUNET_CONTAINER_MultiHashMap *prefs; | ||
268 | |||
269 | struct PreferenceClient *pc_head; | 267 | struct PreferenceClient *pc_head; |
270 | struct PreferenceClient *pc_tail; | 268 | struct PreferenceClient *pc_tail; |
271 | }; | 269 | }; |
@@ -360,6 +358,7 @@ struct AddressWrapper | |||
360 | static int | 358 | static int |
361 | is_bandwidth_available_in_network (struct Network *net) | 359 | is_bandwidth_available_in_network (struct Network *net) |
362 | { | 360 | { |
361 | GNUNET_assert (NULL != net); | ||
363 | unsigned int na = net->active_addresses + 1; | 362 | unsigned int na = net->active_addresses + 1; |
364 | uint32_t min_bw = ntohl (GNUNET_CONSTANTS_DEFAULT_BW_IN_OUT.value__); | 363 | uint32_t min_bw = ntohl (GNUNET_CONSTANTS_DEFAULT_BW_IN_OUT.value__); |
365 | if (((net->total_quota_in / na) > min_bw) && | 364 | if (((net->total_quota_in / na) > min_bw) && |
@@ -892,6 +891,13 @@ GAS_proportional_get_preferred_address (void *solver, | |||
892 | (GNUNET_NO == cur->active) ? "inactive" : "active", | 891 | (GNUNET_NO == cur->active) ? "inactive" : "active", |
893 | cur, GNUNET_i2s (peer)); | 892 | cur, GNUNET_i2s (peer)); |
894 | net_cur = (struct Network *) cur->solver_information; | 893 | net_cur = (struct Network *) cur->solver_information; |
894 | if (NULL == cur) | ||
895 | { | ||
896 | LOG (GNUNET_ERROR_TYPE_ERROR, "Trying to suggesting unknown address peer `%s'\n", | ||
897 | GNUNET_i2s (peer)); | ||
898 | GNUNET_break (0); | ||
899 | return NULL; | ||
900 | } | ||
895 | if (GNUNET_YES == cur->active) | 901 | if (GNUNET_YES == cur->active) |
896 | { | 902 | { |
897 | /* This address was selected previously, so no need to update quotas */ | 903 | /* This address was selected previously, so no need to update quotas */ |
@@ -1103,6 +1109,7 @@ GAS_proportional_address_update (void *solver, | |||
1103 | 1109 | ||
1104 | /* set new network type */ | 1110 | /* set new network type */ |
1105 | new_net = get_network (solver, addr_net); | 1111 | new_net = get_network (solver, addr_net); |
1112 | GNUNET_assert (NULL != new_net); | ||
1106 | address->solver_information = new_net; | 1113 | address->solver_information = new_net; |
1107 | 1114 | ||
1108 | /* Add to new network and update*/ | 1115 | /* Add to new network and update*/ |
@@ -1256,7 +1263,6 @@ GAS_proportional_init (const struct GNUNET_CONFIGURATION_Handle *cfg, | |||
1256 | s->network_entries = GNUNET_malloc (dest_length * sizeof (struct Network)); | 1263 | s->network_entries = GNUNET_malloc (dest_length * sizeof (struct Network)); |
1257 | s->active_addresses = 0; | 1264 | s->active_addresses = 0; |
1258 | s->total_addresses = 0; | 1265 | s->total_addresses = 0; |
1259 | s->prefs = GNUNET_CONTAINER_multihashmap_create (10, GNUNET_NO); | ||
1260 | 1266 | ||
1261 | for (c = 0; c < dest_length; c++) | 1267 | for (c = 0; c < dest_length; c++) |
1262 | { | 1268 | { |