diff options
author | Omar Tarabai <tarabai@devegypt.com> | 2014-06-03 15:03:36 +0000 |
---|---|---|
committer | Omar Tarabai <tarabai@devegypt.com> | 2014-06-03 15:03:36 +0000 |
commit | 1d644b000a0f0b5c12fe82a6c95d4874081b69a5 (patch) | |
tree | e7cf26af12f45392b6f0a79d6012f16f1b6fd605 /src/peerstore/gnunet-service-peerstore.c | |
parent | a04d70028c0615e7910f68328db9c61bba67128b (diff) | |
download | gnunet-1d644b000a0f0b5c12fe82a6c95d4874081b69a5.tar.gz gnunet-1d644b000a0f0b5c12fe82a6c95d4874081b69a5.zip |
peerstore: memory leak fixes
Diffstat (limited to 'src/peerstore/gnunet-service-peerstore.c')
-rw-r--r-- | src/peerstore/gnunet-service-peerstore.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/peerstore/gnunet-service-peerstore.c b/src/peerstore/gnunet-service-peerstore.c index 82961f685..febebc63a 100644 --- a/src/peerstore/gnunet-service-peerstore.c +++ b/src/peerstore/gnunet-service-peerstore.c | |||
@@ -155,6 +155,7 @@ int record_iterator(void *cls, | |||
155 | record->expiry, | 155 | record->expiry, |
156 | GNUNET_MESSAGE_TYPE_PEERSTORE_ITERATE_RECORD); | 156 | GNUNET_MESSAGE_TYPE_PEERSTORE_ITERATE_RECORD); |
157 | GNUNET_SERVER_notification_context_unicast(nc, client, (struct GNUNET_MessageHeader *)srm, GNUNET_NO); | 157 | GNUNET_SERVER_notification_context_unicast(nc, client, (struct GNUNET_MessageHeader *)srm, GNUNET_NO); |
158 | GNUNET_free(srm); | ||
158 | return GNUNET_YES; | 159 | return GNUNET_YES; |
159 | } | 160 | } |
160 | 161 | ||
@@ -190,6 +191,7 @@ int watch_notifier_it(void *cls, | |||
190 | GNUNET_MESSAGE_TYPE_PEERSTORE_WATCH_RECORD); | 191 | GNUNET_MESSAGE_TYPE_PEERSTORE_WATCH_RECORD); |
191 | GNUNET_SERVER_notification_context_unicast(nc, client, | 192 | GNUNET_SERVER_notification_context_unicast(nc, client, |
192 | (const struct GNUNET_MessageHeader *)srm, GNUNET_NO); | 193 | (const struct GNUNET_MessageHeader *)srm, GNUNET_NO); |
194 | GNUNET_free(srm); | ||
193 | return GNUNET_YES; | 195 | return GNUNET_YES; |
194 | } | 196 | } |
195 | 197 | ||
@@ -291,12 +293,14 @@ void handle_iterate (void *cls, | |||
291 | endmsg->size = htons(sizeof(struct GNUNET_MessageHeader)); | 293 | endmsg->size = htons(sizeof(struct GNUNET_MessageHeader)); |
292 | endmsg->type = htons(GNUNET_MESSAGE_TYPE_PEERSTORE_ITERATE_END); | 294 | endmsg->type = htons(GNUNET_MESSAGE_TYPE_PEERSTORE_ITERATE_END); |
293 | GNUNET_SERVER_notification_context_unicast(nc, client, endmsg, GNUNET_NO); | 295 | GNUNET_SERVER_notification_context_unicast(nc, client, endmsg, GNUNET_NO); |
296 | GNUNET_free(endmsg); | ||
297 | GNUNET_SERVER_receive_done(client, GNUNET_OK); | ||
294 | } | 298 | } |
295 | else | 299 | else |
296 | { | 300 | { |
297 | GNUNET_SERVER_receive_done(client, GNUNET_SYSERR); | 301 | GNUNET_SERVER_receive_done(client, GNUNET_SYSERR); |
298 | } | 302 | } |
299 | GNUNET_free(record); /* FIXME: destroy record */ | 303 | PEERSTORE_destroy_record(record); |
300 | } | 304 | } |
301 | 305 | ||
302 | /** | 306 | /** |
@@ -323,8 +327,8 @@ void handle_store (void *cls, | |||
323 | || NULL == record->peer | 327 | || NULL == record->peer |
324 | || NULL == record->key) | 328 | || NULL == record->key) |
325 | { | 329 | { |
326 | /* FIXME: Destroy record */ | ||
327 | GNUNET_log(GNUNET_ERROR_TYPE_ERROR, "Full key not supplied in client store request\n"); | 330 | GNUNET_log(GNUNET_ERROR_TYPE_ERROR, "Full key not supplied in client store request\n"); |
331 | PEERSTORE_destroy_record(record); | ||
328 | GNUNET_SERVER_receive_done(client, GNUNET_SYSERR); | 332 | GNUNET_SERVER_receive_done(client, GNUNET_SYSERR); |
329 | return; | 333 | return; |
330 | } | 334 | } |
@@ -341,13 +345,14 @@ void handle_store (void *cls, | |||
341 | record->value_size, | 345 | record->value_size, |
342 | *record->expiry)) | 346 | *record->expiry)) |
343 | { | 347 | { |
344 | /* FIXME: Destroy record */ | ||
345 | GNUNET_log(GNUNET_ERROR_TYPE_ERROR, "Failed to store requested value, sqlite database error."); | 348 | GNUNET_log(GNUNET_ERROR_TYPE_ERROR, "Failed to store requested value, sqlite database error."); |
349 | PEERSTORE_destroy_record(record); | ||
346 | GNUNET_SERVER_receive_done(client, GNUNET_SYSERR); | 350 | GNUNET_SERVER_receive_done(client, GNUNET_SYSERR); |
347 | return; | 351 | return; |
348 | } | 352 | } |
349 | GNUNET_SERVER_receive_done(client, GNUNET_OK); | 353 | GNUNET_SERVER_receive_done(client, GNUNET_OK); |
350 | watch_notifier(record); | 354 | watch_notifier(record); |
355 | PEERSTORE_destroy_record(record); | ||
351 | } | 356 | } |
352 | 357 | ||
353 | /** | 358 | /** |