gst: Add poisoning to more types
authorSebastian Dröge <sebastian@centricular.com>
Fri, 3 Aug 2018 10:16:21 +0000 (13:16 +0300)
committerSebastian Dröge <sebastian@centricular.com>
Fri, 3 Aug 2018 11:31:34 +0000 (14:31 +0300)
13 files changed:
gst/gstbufferlist.c
gst/gstcaps.c
gst/gstcontext.c
gst/gstdatetime.c
gst/gstevent.c
gst/gstmemory.c
gst/gstmessage.c
gst/gstpromise.c
gst/gstquery.c
gst/gstsample.c
gst/gsttaglist.c
gst/gsttoc.c
gst/gsturi.c

index 21fed17..2c13597 100644 (file)
@@ -103,6 +103,7 @@ static void
 _gst_buffer_list_free (GstBufferList * list)
 {
   guint i, len;
+  gsize slice_size;
 
   GST_LOG ("free %p", list);
 
@@ -117,7 +118,13 @@ _gst_buffer_list_free (GstBufferList * list)
   if (GST_BUFFER_LIST_IS_USING_DYNAMIC_ARRAY (list))
     g_free (list->buffers);
 
-  g_slice_free1 (list->slice_size, list);
+  slice_size = list->slice_size;
+
+#ifdef USE_POISONING
+  memset (list, 0xff, slice_size);
+#endif
+
+  g_slice_free1 (slice_size, list);
 }
 
 static void
index 8af0503..01f8934 100644 (file)
@@ -216,6 +216,11 @@ _gst_caps_free (GstCaps * caps)
 #ifdef DEBUG_REFCOUNT
   GST_CAT_TRACE (GST_CAT_CAPS, "freeing caps %p", caps);
 #endif
+
+#ifdef USE_POISONING
+  memset (caps, 0xff, sizeof (GstCapsImpl));
+#endif
+
   g_slice_free1 (sizeof (GstCapsImpl), caps);
 }
 
index 73cace4..c1bbe0a 100644 (file)
@@ -108,6 +108,10 @@ _gst_context_free (GstContext * context)
   }
   g_free (context->context_type);
 
+#ifdef USE_POISONING
+  memset (context, 0xff, sizeof (GstContext));
+#endif
+
   g_slice_free1 (sizeof (GstContext), context);
 }
 
index efd0460..cea0f70 100644 (file)
@@ -922,6 +922,11 @@ static void
 gst_date_time_free (GstDateTime * datetime)
 {
   g_date_time_unref (datetime->datetime);
+
+#ifdef USE_POISONING
+  memset (datetime, 0xff, sizeof (GstDateTime));
+#endif
+
   g_slice_free (GstDateTime, datetime);
 }
 
index fae950c..0189f43 100644 (file)
@@ -228,6 +228,9 @@ _gst_event_free (GstEvent * event)
     gst_structure_set_parent_refcount (s, NULL);
     gst_structure_free (s);
   }
+#ifdef USE_POISONING
+  memset (event, 0xff, sizeof (GstEventImpl));
+#endif
 
   g_slice_free1 (sizeof (GstEventImpl), event);
 }
index eead80a..a68aa47 100644 (file)
@@ -95,6 +95,7 @@ _gst_memory_free (GstMemory * mem)
   allocator = mem->allocator;
 
   gst_allocator_free (allocator, mem);
+
   gst_object_unref (allocator);
 }
 
index ef0ca96..25c47e1 100644 (file)
@@ -217,6 +217,9 @@ _gst_message_free (GstMessage * message)
     gst_structure_set_parent_refcount (structure, NULL);
     gst_structure_free (structure);
   }
+#ifdef USE_POISONING
+  memset (message, 0xff, sizeof (GstMessageImpl));
+#endif
 
   g_slice_free1 (sizeof (GstMessageImpl), message);
 }
index 55f5149..e8e971a 100644 (file)
@@ -335,6 +335,10 @@ gst_promise_free (GstMiniObject * object)
   g_cond_clear (GST_PROMISE_COND (promise));
   GST_LOG ("%p finalized", promise);
 
+#ifdef USE_POISONING
+  memset (promise, 0xff, sizeof (GstPromiseImpl));
+#endif
+
   g_free (promise);
 }
 
index b6dba1a..0ef77cc 100644 (file)
@@ -195,6 +195,9 @@ _gst_query_free (GstQuery * query)
     gst_structure_set_parent_refcount (s, NULL);
     gst_structure_free (s);
   }
+#ifdef USE_POISONING
+  memset (query, 0xff, sizeof (GstQueryImpl));
+#endif
 
   g_slice_free1 (sizeof (GstQueryImpl), query);
 }
index b73461d..627ea07 100644 (file)
@@ -101,6 +101,9 @@ _gst_sample_free (GstSample * sample)
         GST_MINI_OBJECT_CAST (sample));
     gst_buffer_list_unref (sample->buffer_list);
   }
+#ifdef USE_POISONING
+  memset (sample, 0xff, sizeof (GstSample));
+#endif
 
   g_slice_free1 (sizeof (GstSample), sample);
 }
index 059c87e..4845d90 100644 (file)
@@ -719,6 +719,10 @@ __gst_tag_list_free (GstTagList * list)
 
   gst_structure_free (GST_TAG_LIST_STRUCTURE (list));
 
+#ifdef USE_POISONING
+  memset (list, 0xff, sizeof (GstTagListImpl));
+#endif
+
   g_slice_free1 (sizeof (GstTagListImpl), list);
 }
 
index 7e62d5f..fd6bd66 100644 (file)
@@ -309,6 +309,10 @@ gst_toc_free (GstToc * toc)
   if (toc->tags != NULL)
     gst_tag_list_unref (toc->tags);
 
+#ifdef USE_POISONING
+  memset (toc, 0xff, sizeof (GstToc));
+#endif
+
   g_slice_free (GstToc, toc);
 }
 
@@ -325,6 +329,10 @@ gst_toc_entry_free (GstTocEntry * entry)
   if (entry->tags != NULL)
     gst_tag_list_unref (entry->tags);
 
+#ifdef USE_POISONING
+  memset (entry, 0xff, sizeof (GstTocEntry));
+#endif
+
   g_slice_free (GstTocEntry, entry);
 }
 
index 2a9c621..4b1d47f 100644 (file)
@@ -1014,6 +1014,10 @@ _gst_uri_free (GstUri * uri)
     g_hash_table_unref (uri->query);
   g_free (uri->fragment);
 
+#ifdef USE_POISONING
+  memset (uri, 0xff, sizeof (*uri));
+#endif
+
   g_slice_free1 (sizeof (*uri), uri);
 }