From 0917293072189299f3b85a42e50551b584d37ccb Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Tue, 3 Sep 2019 01:55:46 +0900 Subject: [PATCH] login: fix use after free id is basename(state_file) --- src/login/logind-inhibit.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/login/logind-inhibit.c b/src/login/logind-inhibit.c index 1883c97e4d..67fe9921d4 100644 --- a/src/login/logind-inhibit.c +++ b/src/login/logind-inhibit.c @@ -72,13 +72,13 @@ Inhibitor* inhibitor_free(Inhibitor *i) { sd_event_source_unref(i->event_source); safe_close(i->fifo_fd); + hashmap_remove(i->manager->inhibitors, i->id); + /* Note that we don't remove neither the state file nor the fifo path here, since we want both to * survive daemon restarts */ free(i->state_file); free(i->fifo_path); - hashmap_remove(i->manager->inhibitors, i->id); - return mfree(i); }