diff options
author | Matthias Wachs <wachs@net.in.tum.de> | 2012-06-19 13:14:18 +0000 |
---|---|---|
committer | Matthias Wachs <wachs@net.in.tum.de> | 2012-06-19 13:14:18 +0000 |
commit | 0f084973d63c46217d25e6660fba56755f26e6bb (patch) | |
tree | 69b00a705dac9fb646c1a0e30b338b024e95de68 /src/ats | |
parent | e02cb36c96f1745b357fe723b2990753247acb46 (diff) | |
download | gnunet-0f084973d63c46217d25e6660fba56755f26e6bb.tar.gz gnunet-0f084973d63c46217d25e6660fba56755f26e6bb.zip |
- fix memory leaks
Diffstat (limited to 'src/ats')
-rw-r--r-- | src/ats/ats_api_scheduling.c | 84 |
1 files changed, 44 insertions, 40 deletions
diff --git a/src/ats/ats_api_scheduling.c b/src/ats/ats_api_scheduling.c index 90221537a..398c8b2d0 100644 --- a/src/ats/ats_api_scheduling.c +++ b/src/ats/ats_api_scheduling.c | |||
@@ -1097,16 +1097,6 @@ GNUNET_ATS_address_add (struct GNUNET_ATS_SchedulingHandle *sh, | |||
1097 | return GNUNET_SYSERR; | 1097 | return GNUNET_SYSERR; |
1098 | } | 1098 | } |
1099 | 1099 | ||
1100 | p = GNUNET_malloc (sizeof (struct PendingMessage) + msize); | ||
1101 | p->size = msize; | ||
1102 | p->is_init = GNUNET_NO; | ||
1103 | m = (struct AddressUpdateMessage *) &p[1]; | ||
1104 | m->header.type = htons (GNUNET_MESSAGE_TYPE_ATS_ADDRESS_ADD); | ||
1105 | m->header.size = htons (msize); | ||
1106 | m->ats_count = htonl (ats_count); | ||
1107 | m->peer = address->peer; | ||
1108 | m->address_length = htons (address->address_length); | ||
1109 | m->plugin_name_length = htons (namelen); | ||
1110 | if (NULL != session) | 1100 | if (NULL != session) |
1111 | { | 1101 | { |
1112 | s = find_session_id (sh, session, &address->peer); | 1102 | s = find_session_id (sh, session, &address->peer); |
@@ -1122,6 +1112,17 @@ GNUNET_ATS_address_add (struct GNUNET_ATS_SchedulingHandle *sh, | |||
1122 | s = find_empty_session_slot (sh, session, &address->peer); | 1112 | s = find_empty_session_slot (sh, session, &address->peer); |
1123 | GNUNET_break (NOT_FOUND != s); | 1113 | GNUNET_break (NOT_FOUND != s); |
1124 | } | 1114 | } |
1115 | |||
1116 | p = GNUNET_malloc (sizeof (struct PendingMessage) + msize); | ||
1117 | p->size = msize; | ||
1118 | p->is_init = GNUNET_NO; | ||
1119 | m = (struct AddressUpdateMessage *) &p[1]; | ||
1120 | m->header.type = htons (GNUNET_MESSAGE_TYPE_ATS_ADDRESS_ADD); | ||
1121 | m->header.size = htons (msize); | ||
1122 | m->ats_count = htonl (ats_count); | ||
1123 | m->peer = address->peer; | ||
1124 | m->address_length = htons (address->address_length); | ||
1125 | m->plugin_name_length = htons (namelen); | ||
1125 | m->session_id = htonl (s); | 1126 | m->session_id = htonl (s); |
1126 | 1127 | ||
1127 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 1128 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
@@ -1197,16 +1198,6 @@ GNUNET_ATS_address_update (struct GNUNET_ATS_SchedulingHandle *sh, | |||
1197 | return; | 1198 | return; |
1198 | } | 1199 | } |
1199 | 1200 | ||
1200 | p = GNUNET_malloc (sizeof (struct PendingMessage) + msize); | ||
1201 | p->size = msize; | ||
1202 | p->is_init = GNUNET_NO; | ||
1203 | m = (struct AddressUpdateMessage *) &p[1]; | ||
1204 | m->header.type = htons (GNUNET_MESSAGE_TYPE_ATS_ADDRESS_UPDATE); | ||
1205 | m->header.size = htons (msize); | ||
1206 | m->ats_count = htonl (ats_count); | ||
1207 | m->peer = address->peer; | ||
1208 | m->address_length = htons (address->address_length); | ||
1209 | m->plugin_name_length = htons (namelen); | ||
1210 | if (NULL != session) | 1201 | if (NULL != session) |
1211 | { | 1202 | { |
1212 | s = find_session_id (sh, session, &address->peer); | 1203 | s = find_session_id (sh, session, &address->peer); |
@@ -1221,6 +1212,18 @@ GNUNET_ATS_address_update (struct GNUNET_ATS_SchedulingHandle *sh, | |||
1221 | return; | 1212 | return; |
1222 | } | 1213 | } |
1223 | } | 1214 | } |
1215 | |||
1216 | p = GNUNET_malloc (sizeof (struct PendingMessage) + msize); | ||
1217 | p->size = msize; | ||
1218 | p->is_init = GNUNET_NO; | ||
1219 | m = (struct AddressUpdateMessage *) &p[1]; | ||
1220 | m->header.type = htons (GNUNET_MESSAGE_TYPE_ATS_ADDRESS_UPDATE); | ||
1221 | m->header.size = htons (msize); | ||
1222 | m->ats_count = htonl (ats_count); | ||
1223 | m->peer = address->peer; | ||
1224 | m->address_length = htons (address->address_length); | ||
1225 | m->plugin_name_length = htons (namelen); | ||
1226 | |||
1224 | m->session_id = htonl (s); | 1227 | m->session_id = htonl (s); |
1225 | 1228 | ||
1226 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 1229 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
@@ -1273,16 +1276,6 @@ GNUNET_ATS_address_in_use (struct GNUNET_ATS_SchedulingHandle *sh, | |||
1273 | return; | 1276 | return; |
1274 | } | 1277 | } |
1275 | 1278 | ||
1276 | p = GNUNET_malloc (sizeof (struct PendingMessage) + msize); | ||
1277 | p->size = msize; | ||
1278 | p->is_init = GNUNET_NO; | ||
1279 | m = (struct AddressUseMessage *) &p[1]; | ||
1280 | m->header.type = htons (GNUNET_MESSAGE_TYPE_ATS_ADDRESS_IN_USE); | ||
1281 | m->header.size = htons (msize); | ||
1282 | m->peer = address->peer; | ||
1283 | m->in_use = htons (in_use); | ||
1284 | m->address_length = htons (address->address_length); | ||
1285 | m->plugin_name_length = htons (namelen); | ||
1286 | if (session != NULL) | 1279 | if (session != NULL) |
1287 | { | 1280 | { |
1288 | s = find_session_id (sh, session, &address->peer); | 1281 | s = find_session_id (sh, session, &address->peer); |
@@ -1303,6 +1296,17 @@ GNUNET_ATS_address_in_use (struct GNUNET_ATS_SchedulingHandle *sh, | |||
1303 | } | 1296 | } |
1304 | } | 1297 | } |
1305 | 1298 | ||
1299 | p = GNUNET_malloc (sizeof (struct PendingMessage) + msize); | ||
1300 | p->size = msize; | ||
1301 | p->is_init = GNUNET_NO; | ||
1302 | m = (struct AddressUseMessage *) &p[1]; | ||
1303 | m->header.type = htons (GNUNET_MESSAGE_TYPE_ATS_ADDRESS_IN_USE); | ||
1304 | m->header.size = htons (msize); | ||
1305 | m->peer = address->peer; | ||
1306 | m->in_use = htons (in_use); | ||
1307 | m->address_length = htons (address->address_length); | ||
1308 | m->plugin_name_length = htons (namelen); | ||
1309 | |||
1306 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 1310 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
1307 | "Setting address used to %s for peer `%s', plugin `%s', session %p\n", | 1311 | "Setting address used to %s for peer `%s', plugin `%s', session %p\n", |
1308 | (GNUNET_YES == in_use) ? "YES" : "NO", | 1312 | (GNUNET_YES == in_use) ? "YES" : "NO", |
@@ -1351,6 +1355,16 @@ GNUNET_ATS_address_destroyed (struct GNUNET_ATS_SchedulingHandle *sh, | |||
1351 | return; | 1355 | return; |
1352 | } | 1356 | } |
1353 | 1357 | ||
1358 | s = find_session_id (sh, session, &address->peer); | ||
1359 | if ((NULL != session) && (NOT_FOUND == s)) | ||
1360 | { | ||
1361 | /* trying to delete unknown address */ | ||
1362 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | ||
1363 | "Trying to delete unknown address for peer `%s', plugin `%s', session %p\n", | ||
1364 | GNUNET_i2s (&address->peer), address->transport_name, session); | ||
1365 | return; | ||
1366 | } | ||
1367 | |||
1354 | p = GNUNET_malloc (sizeof (struct PendingMessage) + msize); | 1368 | p = GNUNET_malloc (sizeof (struct PendingMessage) + msize); |
1355 | p->size = msize; | 1369 | p->size = msize; |
1356 | p->is_init = GNUNET_NO; | 1370 | p->is_init = GNUNET_NO; |
@@ -1362,16 +1376,6 @@ GNUNET_ATS_address_destroyed (struct GNUNET_ATS_SchedulingHandle *sh, | |||
1362 | m->address_length = htons (address->address_length); | 1376 | m->address_length = htons (address->address_length); |
1363 | m->plugin_name_length = htons (namelen); | 1377 | m->plugin_name_length = htons (namelen); |
1364 | 1378 | ||
1365 | s = find_session_id (sh, session, &address->peer); | ||
1366 | if ((NULL != session) && (NOT_FOUND == s)) | ||
1367 | { | ||
1368 | /* trying to delete unknown address */ | ||
1369 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | ||
1370 | "Trying to delete unknown address for peer `%s', plugin `%s', session %p\n", | ||
1371 | GNUNET_i2s (&address->peer), address->transport_name, session); | ||
1372 | return; | ||
1373 | } | ||
1374 | |||
1375 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, | 1379 | GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, |
1376 | "Deleting address for peer `%s', plugin `%s', session %p\n", | 1380 | "Deleting address for peer `%s', plugin `%s', session %p\n", |
1377 | GNUNET_i2s (&address->peer), address->transport_name, session); | 1381 | GNUNET_i2s (&address->peer), address->transport_name, session); |