aboutsummaryrefslogtreecommitdiff
path: root/src/ats
diff options
context:
space:
mode:
authorMatthias Wachs <wachs@net.in.tum.de>2013-06-28 14:01:40 +0000
committerMatthias Wachs <wachs@net.in.tum.de>2013-06-28 14:01:40 +0000
commit9b0f977e2c87c23a7537661b6b8d305e01fd3a11 (patch)
treee8f8f327668ebe5a4c41c13d775651a1a1e8ece9 /src/ats
parente33853d4af1d4a9caf64cba3eb2f738b737b0a8f (diff)
downloadgnunet-9b0f977e2c87c23a7537661b6b8d305e01fd3a11.tar.gz
gnunet-9b0f977e2c87c23a7537661b6b8d305e01fd3a11.zip
fixing memory leak: unused hashmap
fixing segfault by adding NULL check
Diffstat (limited to 'src/ats')
-rw-r--r--src/ats/gnunet-service-ats-solver_proportional.c12
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
360static int 358static int
361is_bandwidth_available_in_network (struct Network *net) 359is_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 {