aboutsummaryrefslogtreecommitdiff
path: root/src/dv/dv_api.c
diff options
context:
space:
mode:
authorNathan S. Evans <evans@in.tum.de>2010-06-21 16:21:19 +0000
committerNathan S. Evans <evans@in.tum.de>2010-06-21 16:21:19 +0000
commit1bf55b33a415d584ae338a0afea5b51d059f11ab (patch)
treeafc648b9ae3fb53854d8331cfebfccf88ab3c01e /src/dv/dv_api.c
parentb50484f5af8f9a33ecea9cef21621cd71d78b25d (diff)
codesonar fixes, some other changes
Diffstat (limited to 'src/dv/dv_api.c')
-rw-r--r--src/dv/dv_api.c11
1 files changed, 7 insertions, 4 deletions
diff --git a/src/dv/dv_api.c b/src/dv/dv_api.c
index 12801dcd7d..9ab15ea627 100644
--- a/src/dv/dv_api.c
+++ b/src/dv/dv_api.c
@@ -200,6 +200,7 @@ finish (struct GNUNET_DV_Handle *handle, int code)
handle->current = NULL;
process_pending_message (handle);
+ GNUNET_free(pos->msg);
GNUNET_free (pos);
}
@@ -312,12 +313,10 @@ static void add_pending(struct GNUNET_DV_Handle *handle, struct GNUNET_DV_SendMe
last = pos;
pos = pos->next;
}
- new_message->next = last->next; /* Should always be null */
last->next = new_message;
}
else
{
- new_message->next = handle->pending_list; /* Will always be null */
handle->pending_list = new_message;
}
@@ -445,14 +444,16 @@ int GNUNET_DV_send (struct GNUNET_DV_Handle *dv_handle,
struct SendCallbackContext *send_ctx;
char *end_of_message;
GNUNET_HashCode uidhash;
+ int msize;
#if DEBUG_DV_MESSAGES
dv_handle->uid_gen = GNUNET_CRYPTO_random_u32 (GNUNET_CRYPTO_QUALITY_STRONG, UINT32_MAX);
#else
dv_handle->uid_gen++;
#endif
- msg = GNUNET_malloc(sizeof(struct GNUNET_DV_SendMessage) + addrlen + msgbuf_size);
- msg->header.size = htons(sizeof(struct GNUNET_DV_SendMessage) + addrlen + msgbuf_size);
+ msize = sizeof(struct GNUNET_DV_SendMessage) + addrlen + msgbuf_size;
+ msg = GNUNET_malloc(msize);
+ msg->header.size = htons(msize);
msg->header.type = htons(GNUNET_MESSAGE_TYPE_TRANSPORT_DV_SEND);
memcpy(&msg->target, target, sizeof(struct GNUNET_PeerIdentity));
msg->msgbuf_size = htonl(msgbuf_size);
@@ -497,6 +498,8 @@ transmit_start (void *cls, size_t size, void *buf)
if (size >= tsize)
{
memcpy(buf, start_context->message, tsize);
+ GNUNET_free(start_context->message);
+ GNUNET_free(start_context);
return tsize;
}