libsysprof: actually unmap our event stream

This commit is contained in:
Christian Hergert
2024-10-24 17:07:37 -07:00
parent 571eb5f85b
commit d435c42666

View File

@ -86,6 +86,7 @@ struct _SysprofPerfEventStream
struct perf_event_mmap_page *map;
guint8 *map_data;
guint64 tail;
gsize map_size;
guint active : 1;
};
@ -347,6 +348,13 @@ sysprof_perf_event_stream_finalize (GObject *object)
g_clear_fd (&self->perf_fd, NULL);
if (self->map != NULL && self->map_size > 0)
{
munmap (self->map, self->map_size);
self->map = NULL;
self->map_size = 0;
}
G_OBJECT_CLASS (sysprof_perf_event_stream_parent_class)->finalize (object);
}
@ -434,6 +442,7 @@ sysprof_perf_event_stream_new_cb (GObject *object,
}
else
{
self->map_size = map_size;
self->map = (gpointer)map;
self->map_data = map + sysprof_getpagesize ();
self->tail = 0;