chiark / gitweb /
logind: fix sd_eviocrevoke ioctl call
[elogind.git] / src / login / logind-user.c
index d2a4f7e9cbf9095d26d5ee12a5a96fe051b3caac..49c373b50dad738c8f5ce5829d06c2c73d90ff80 100644 (file)
@@ -56,7 +56,7 @@ User* user_new(Manager *m, uid_t uid, gid_t gid, const char *name) {
         if (asprintf(&u->state_file, "/run/systemd/users/"UID_FMT, uid) < 0)
                 goto fail;
 
-        if (hashmap_put(m->users, ULONG_TO_PTR((unsigned long) uid), u) < 0)
+        if (hashmap_put(m->users, UID_TO_PTR(uid), u) < 0)
                 goto fail;
 
         u->manager = m;
@@ -97,7 +97,7 @@ void user_free(User *u) {
 
         free(u->runtime_path);
 
-        hashmap_remove(u->manager->users, ULONG_TO_PTR((unsigned long) u->uid));
+        hashmap_remove(u->manager->users, UID_TO_PTR(u->uid));
 
         free(u->name);
         free(u->state_file);
@@ -310,10 +310,8 @@ static int user_mkdir_runtime_path(User *u) {
         assert(u);
 
         r = mkdir_safe_label("/run/user", 0755, 0, 0);
-        if (r < 0) {
-                log_error_errno(r, "Failed to create /run/user: %m");
-                return r;
-        }
+        if (r < 0)
+                return log_error_errno(r, "Failed to create /run/user: %m");
 
         if (!u->runtime_path) {
                 if (asprintf(&p, "/run/user/" UID_FMT, u->uid) < 0)
@@ -513,7 +511,7 @@ static int user_remove_runtime_path(User *u) {
                 log_error_errno(r, "Failed to remove runtime directory %s: %m", u->runtime_path);
 
         if (umount2(u->runtime_path, MNT_DETACH) < 0)
-                log_error("Failed to unmount user runtime directory %s: %m", u->runtime_path);
+                log_error_errno(errno, "Failed to unmount user runtime directory %s: %m", u->runtime_path);
 
         r = rm_rf(u->runtime_path, false, true, false);
         if (r < 0)