From 2d10aa8b612d6975ec57339051e0b2116a2e45e5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?P=C5=99emysl=20Eric=20Janouch?= Date: Thu, 3 Aug 2023 04:34:05 +0200 Subject: Prevent a class of crashes in monitoring --- fiv-io-model.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/fiv-io-model.c b/fiv-io-model.c index 2f8b192..2ee1002 100644 --- a/fiv-io-model.c +++ b/fiv-io-model.c @@ -346,6 +346,8 @@ static void monitor_apply(enum monitor_event event, GPtrArray *target, int index, FivIoModelEntry *new_entry) { + g_return_if_fail(event != MONITOR_CHANGING || index >= 0); + if (event == MONITOR_RENAMING && index < 0) // The file used to be filtered out but isn't anymore. event = MONITOR_ADDING; @@ -706,7 +708,7 @@ fiv_io_model_open(FivIoModel *self, GFile *directory, GError **error) GError *e = NULL; if ((self->monitor = g_file_monitor_directory( - directory, G_FILE_MONITOR_WATCH_MOVES, NULL, &e))) { + directory, G_FILE_MONITOR_WATCH_MOVES, NULL, &e))) { g_signal_connect(self->monitor, "changed", G_CALLBACK(on_monitor_changed), self); } else { -- cgit v1.2.3