[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[GNUnet-SVN] r33499 - gnunet/src/peerstore
From: |
gnunet |
Subject: |
[GNUnet-SVN] r33499 - gnunet/src/peerstore |
Date: |
Tue, 3 Jun 2014 17:03:36 +0200 |
Author: otarabai
Date: 2014-06-03 17:03:36 +0200 (Tue, 03 Jun 2014)
New Revision: 33499
Modified:
gnunet/src/peerstore/gnunet-service-peerstore.c
gnunet/src/peerstore/peerstore_common.c
gnunet/src/peerstore/peerstore_common.h
gnunet/src/peerstore/plugin_peerstore_sqlite.c
Log:
peerstore: memory leak fixes
Modified: gnunet/src/peerstore/gnunet-service-peerstore.c
===================================================================
--- gnunet/src/peerstore/gnunet-service-peerstore.c 2014-06-03 13:50:37 UTC
(rev 33498)
+++ gnunet/src/peerstore/gnunet-service-peerstore.c 2014-06-03 15:03:36 UTC
(rev 33499)
@@ -155,6 +155,7 @@
record->expiry,
GNUNET_MESSAGE_TYPE_PEERSTORE_ITERATE_RECORD);
GNUNET_SERVER_notification_context_unicast(nc, client, (struct
GNUNET_MessageHeader *)srm, GNUNET_NO);
+ GNUNET_free(srm);
return GNUNET_YES;
}
@@ -190,6 +191,7 @@
GNUNET_MESSAGE_TYPE_PEERSTORE_WATCH_RECORD);
GNUNET_SERVER_notification_context_unicast(nc, client,
(const struct GNUNET_MessageHeader *)srm, GNUNET_NO);
+ GNUNET_free(srm);
return GNUNET_YES;
}
@@ -291,12 +293,14 @@
endmsg->size = htons(sizeof(struct GNUNET_MessageHeader));
endmsg->type = htons(GNUNET_MESSAGE_TYPE_PEERSTORE_ITERATE_END);
GNUNET_SERVER_notification_context_unicast(nc, client, endmsg, GNUNET_NO);
+ GNUNET_free(endmsg);
+ GNUNET_SERVER_receive_done(client, GNUNET_OK);
}
else
{
GNUNET_SERVER_receive_done(client, GNUNET_SYSERR);
}
- GNUNET_free(record); /* FIXME: destroy record */
+ PEERSTORE_destroy_record(record);
}
/**
@@ -323,8 +327,8 @@
|| NULL == record->peer
|| NULL == record->key)
{
- /* FIXME: Destroy record */
GNUNET_log(GNUNET_ERROR_TYPE_ERROR, "Full key not supplied in client store
request\n");
+ PEERSTORE_destroy_record(record);
GNUNET_SERVER_receive_done(client, GNUNET_SYSERR);
return;
}
@@ -341,13 +345,14 @@
record->value_size,
*record->expiry))
{
- /* FIXME: Destroy record */
GNUNET_log(GNUNET_ERROR_TYPE_ERROR, "Failed to store requested value,
sqlite database error.");
+ PEERSTORE_destroy_record(record);
GNUNET_SERVER_receive_done(client, GNUNET_SYSERR);
return;
}
GNUNET_SERVER_receive_done(client, GNUNET_OK);
watch_notifier(record);
+ PEERSTORE_destroy_record(record);
}
/**
Modified: gnunet/src/peerstore/peerstore_common.c
===================================================================
--- gnunet/src/peerstore/peerstore_common.c 2014-06-03 13:50:37 UTC (rev
33498)
+++ gnunet/src/peerstore/peerstore_common.c 2014-06-03 15:03:36 UTC (rev
33499)
@@ -233,3 +233,26 @@
return record;
}
+
+/**
+ * Free any memory allocated for this record
+ *
+ * @param record
+ */
+void PEERSTORE_destroy_record(struct GNUNET_PEERSTORE_Record *record)
+{
+ if(NULL != record->sub_system)
+ GNUNET_free(record->sub_system);
+ if(NULL != record->peer)
+ GNUNET_free(record->peer);
+ if(NULL != record->key)
+ GNUNET_free(record->key);
+ if(NULL != record->value)
+ {
+ GNUNET_free(record->value);
+ record->value = 0;
+ }
+ if(NULL != record->expiry)
+ GNUNET_free(record->expiry);
+ GNUNET_free(record);
+}
Modified: gnunet/src/peerstore/peerstore_common.h
===================================================================
--- gnunet/src/peerstore/peerstore_common.h 2014-06-03 13:50:37 UTC (rev
33498)
+++ gnunet/src/peerstore/peerstore_common.h 2014-06-03 15:03:36 UTC (rev
33499)
@@ -86,3 +86,10 @@
*/
struct GNUNET_PEERSTORE_Record *
PEERSTORE_parse_record_message(const struct GNUNET_MessageHeader *message);
+
+/**
+ * Free any memory allocated for this record
+ *
+ * @param record
+ */
+void PEERSTORE_destroy_record(struct GNUNET_PEERSTORE_Record *record);
Modified: gnunet/src/peerstore/plugin_peerstore_sqlite.c
===================================================================
--- gnunet/src/peerstore/plugin_peerstore_sqlite.c 2014-06-03 13:50:37 UTC
(rev 33498)
+++ gnunet/src/peerstore/plugin_peerstore_sqlite.c 2014-06-03 15:03:36 UTC
(rev 33499)
@@ -215,6 +215,8 @@
iter (iter_cls,
ret,
NULL);
+ GNUNET_free(ret->expiry);
+ GNUNET_free(ret);
}
if (SQLITE_DONE != sret)
{
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [GNUnet-SVN] r33499 - gnunet/src/peerstore,
gnunet <=