diff --git a/src/login/logind-button.c b/src/login/logind-button.c index 727dad0b16..7f95fa7a4f 100644 --- a/src/login/logind-button.c +++ b/src/login/logind-button.c @@ -53,8 +53,9 @@ Button* button_new(Manager *m, const char *name) { return b; } -void button_free(Button *b) { - assert(b); +Button *button_free(Button *b) { + if (!b) + return NULL; hashmap_remove(b->manager->buttons, b->name); @@ -65,7 +66,8 @@ void button_free(Button *b) { free(b->name); free(b->seat); - free(b); + + return mfree(b); } int button_set_seat(Button *b, const char *sn) { diff --git a/src/login/logind-button.h b/src/login/logind-button.h index 041d66521c..6c39471fb4 100644 --- a/src/login/logind-button.h +++ b/src/login/logind-button.h @@ -20,7 +20,7 @@ struct Button { }; Button* button_new(Manager *m, const char *name); -void button_free(Button *b); +Button *button_free(Button *b); int button_open(Button *b); int button_set_seat(Button *b, const char *sn); int button_check_switches(Button *b);