Commit 63c0a5d4 authored by Andrea Azzarone's avatar Andrea Azzarone 🚴

tracker-monitor: Prevent stack smashing

Make sure to use GPOINTER_TO_UINT when using g_hash_table_lookup_extended() to
prevent stack smashing. This will make sure that in the architectures where
sizeof(GFileMonitorEvent) < sizeof(gpointer), g_hash_table_lookup_extended()
will not write more bytes than prev_event_type can hold.

Fixes: #71
parent 9e6bccc2
......@@ -614,13 +614,15 @@ flush_cached_event (TrackerMonitor *monitor,
GFile *file,
gboolean is_directory)
{
GFileMonitorEvent prev_event_type;
gpointer value = NULL;
TrackerMonitorPrivate *priv;
priv = tracker_monitor_get_instance_private (monitor);
if (g_hash_table_lookup_extended (priv->cached_events,
file, NULL, (gpointer*) &prev_event_type)) {
file, NULL, &value)) {
GFileMonitorEvent prev_event_type = GPOINTER_TO_UINT (value);
g_hash_table_remove (priv->cached_events, file);
emit_signal_for_event (monitor, prev_event_type,
is_directory, file, NULL);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment