X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Flogin%2Flogind-user.c;h=961cbcb27b983b3ec3e4c76804c1b34d5bcbc6fe;hb=22fdeadcc06e95fe41ac4de872ec245c0887547f;hp=9bbe879571e4c838214478e77e64e24dcdf9f0f3;hpb=1c231f56482546725c4dbd3303f70300bd3c63e9;p=elogind.git diff --git a/src/login/logind-user.c b/src/login/logind-user.c index 9bbe87957..961cbcb27 100644 --- a/src/login/logind-user.c +++ b/src/login/logind-user.c @@ -35,6 +35,7 @@ #include "bus-util.h" #include "bus-error.h" #include "conf-parser.h" +#include "clean-ipc.h" #include "logind-user.h" User* user_new(Manager *m, uid_t uid, gid_t gid, const char *name) { @@ -572,6 +573,13 @@ int user_finalize(User *u) { if (k < 0) r = k; + /* Clean SysV + POSIX IPC objects */ + if (u->manager->remove_ipc) { + k = clean_ipc(u->uid); + if (k < 0) + r = k; + } + unlink(u->state_file); user_add_to_gc_queue(u);