From: Matthias Wachs Date: Tue, 19 Jun 2012 13:14:18 +0000 (+0000) Subject: - fix memory leaks X-Git-Tag: initial-import-from-subversion-38251~12971 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=0f084973d63c46217d25e6660fba56755f26e6bb;p=oweals%2Fgnunet.git - fix memory leaks --- 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, return GNUNET_SYSERR; } - p = GNUNET_malloc (sizeof (struct PendingMessage) + msize); - p->size = msize; - p->is_init = GNUNET_NO; - m = (struct AddressUpdateMessage *) &p[1]; - m->header.type = htons (GNUNET_MESSAGE_TYPE_ATS_ADDRESS_ADD); - m->header.size = htons (msize); - m->ats_count = htonl (ats_count); - m->peer = address->peer; - m->address_length = htons (address->address_length); - m->plugin_name_length = htons (namelen); if (NULL != session) { s = find_session_id (sh, session, &address->peer); @@ -1122,6 +1112,17 @@ GNUNET_ATS_address_add (struct GNUNET_ATS_SchedulingHandle *sh, s = find_empty_session_slot (sh, session, &address->peer); GNUNET_break (NOT_FOUND != s); } + + p = GNUNET_malloc (sizeof (struct PendingMessage) + msize); + p->size = msize; + p->is_init = GNUNET_NO; + m = (struct AddressUpdateMessage *) &p[1]; + m->header.type = htons (GNUNET_MESSAGE_TYPE_ATS_ADDRESS_ADD); + m->header.size = htons (msize); + m->ats_count = htonl (ats_count); + m->peer = address->peer; + m->address_length = htons (address->address_length); + m->plugin_name_length = htons (namelen); m->session_id = htonl (s); GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, @@ -1197,16 +1198,6 @@ GNUNET_ATS_address_update (struct GNUNET_ATS_SchedulingHandle *sh, return; } - p = GNUNET_malloc (sizeof (struct PendingMessage) + msize); - p->size = msize; - p->is_init = GNUNET_NO; - m = (struct AddressUpdateMessage *) &p[1]; - m->header.type = htons (GNUNET_MESSAGE_TYPE_ATS_ADDRESS_UPDATE); - m->header.size = htons (msize); - m->ats_count = htonl (ats_count); - m->peer = address->peer; - m->address_length = htons (address->address_length); - m->plugin_name_length = htons (namelen); if (NULL != session) { s = find_session_id (sh, session, &address->peer); @@ -1221,6 +1212,18 @@ GNUNET_ATS_address_update (struct GNUNET_ATS_SchedulingHandle *sh, return; } } + + p = GNUNET_malloc (sizeof (struct PendingMessage) + msize); + p->size = msize; + p->is_init = GNUNET_NO; + m = (struct AddressUpdateMessage *) &p[1]; + m->header.type = htons (GNUNET_MESSAGE_TYPE_ATS_ADDRESS_UPDATE); + m->header.size = htons (msize); + m->ats_count = htonl (ats_count); + m->peer = address->peer; + m->address_length = htons (address->address_length); + m->plugin_name_length = htons (namelen); + m->session_id = htonl (s); GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, @@ -1273,16 +1276,6 @@ GNUNET_ATS_address_in_use (struct GNUNET_ATS_SchedulingHandle *sh, return; } - p = GNUNET_malloc (sizeof (struct PendingMessage) + msize); - p->size = msize; - p->is_init = GNUNET_NO; - m = (struct AddressUseMessage *) &p[1]; - m->header.type = htons (GNUNET_MESSAGE_TYPE_ATS_ADDRESS_IN_USE); - m->header.size = htons (msize); - m->peer = address->peer; - m->in_use = htons (in_use); - m->address_length = htons (address->address_length); - m->plugin_name_length = htons (namelen); if (session != NULL) { s = find_session_id (sh, session, &address->peer); @@ -1303,6 +1296,17 @@ GNUNET_ATS_address_in_use (struct GNUNET_ATS_SchedulingHandle *sh, } } + p = GNUNET_malloc (sizeof (struct PendingMessage) + msize); + p->size = msize; + p->is_init = GNUNET_NO; + m = (struct AddressUseMessage *) &p[1]; + m->header.type = htons (GNUNET_MESSAGE_TYPE_ATS_ADDRESS_IN_USE); + m->header.size = htons (msize); + m->peer = address->peer; + m->in_use = htons (in_use); + m->address_length = htons (address->address_length); + m->plugin_name_length = htons (namelen); + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Setting address used to %s for peer `%s', plugin `%s', session %p\n", (GNUNET_YES == in_use) ? "YES" : "NO", @@ -1351,6 +1355,16 @@ GNUNET_ATS_address_destroyed (struct GNUNET_ATS_SchedulingHandle *sh, return; } + s = find_session_id (sh, session, &address->peer); + if ((NULL != session) && (NOT_FOUND == s)) + { + /* trying to delete unknown address */ + GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, + "Trying to delete unknown address for peer `%s', plugin `%s', session %p\n", + GNUNET_i2s (&address->peer), address->transport_name, session); + return; + } + p = GNUNET_malloc (sizeof (struct PendingMessage) + msize); p->size = msize; p->is_init = GNUNET_NO; @@ -1362,16 +1376,6 @@ GNUNET_ATS_address_destroyed (struct GNUNET_ATS_SchedulingHandle *sh, m->address_length = htons (address->address_length); m->plugin_name_length = htons (namelen); - s = find_session_id (sh, session, &address->peer); - if ((NULL != session) && (NOT_FOUND == s)) - { - /* trying to delete unknown address */ - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, - "Trying to delete unknown address for peer `%s', plugin `%s', session %p\n", - GNUNET_i2s (&address->peer), address->transport_name, session); - return; - } - GNUNET_log (GNUNET_ERROR_TYPE_DEBUG, "Deleting address for peer `%s', plugin `%s', session %p\n", GNUNET_i2s (&address->peer), address->transport_name, session);