[gnome-todo] gtd-task: Fix leak of due-date property



commit a8a764c4c3bedc51d6a0c84274c04d60b302ac36
Author: Victor Toso <me victortoso com>
Date:   Thu Oct 27 23:35:53 2016 +0200

    gtd-task: Fix leak of due-date property
    
    288 bytes in 9 blocks are definitely lost in loss record 15,018 of 16,013
       at 0x4C2DB9D: malloc (vg_replace_malloc.c:299)
       by 0xA5229D5: g_malloc (gmem.c:94)
       by 0xA53CB3D: g_slice_alloc (gslice.c:1025)
       by 0xA53CB7D: g_slice_alloc0 (gslice.c:1051)
       by 0xA4FEE8B: g_date_time_alloc (gdatetime.c:428)
       by 0xA4FF688: g_date_time_new (gdatetime.c:957)
       by 0xA4FF8DF: g_date_time_new_utc (gdatetime.c:1049)
       by 0x42468C: gtd_task__convert_icaltime (gtd-task.c:190)
       by 0x4259AF: gtd_task_get_due_date (gtd-task.c:952)
       by 0x424C25: gtd_task_get_property (gtd-task.c:375)
       by 0xA0804F0: object_get_property (gobject.c:1378)
       by 0xA08323F: g_object_get_property (gobject.c:2446)
    
    Signed-off-by: Victor Toso <victortoso redhat com>
    
    https://bugzilla.gnome.org/show_bug.cgi?id=773606

 src/gtd-task.c |    5 ++++-
 1 files changed, 4 insertions(+), 1 deletions(-)
---
diff --git a/src/gtd-task.c b/src/gtd-task.c
index 7c63894..8f09f74 100644
--- a/src/gtd-task.c
+++ b/src/gtd-task.c
@@ -348,6 +348,7 @@ gtd_task_get_property (GObject    *object,
 {
   GtdTask *self = GTD_TASK (object);
   GtdTaskPrivate *priv = gtd_task_get_instance_private (self);
+  GDateTime *date;
 
   switch (prop_id)
     {
@@ -372,7 +373,9 @@ gtd_task_get_property (GObject    *object,
       break;
 
     case PROP_DUE_DATE:
-      g_value_set_boxed (value, gtd_task_get_due_date (self));
+      date = gtd_task_get_due_date (self);
+      g_value_set_boxed (value, date);
+      g_clear_pointer (&date, g_date_time_unref);
       break;
 
     case PROP_LIST:


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]