Hi! I've just realized by performing some more tests that a subtly mistaken commit from August 31st had introduced a random failure to create users. Basically, we are checking that an UID is free by comparing all UIDs to an uninitialized uid_t, which obviously won't work. Sometimes, you cannot create a new user at all (when the random int is an existing UID). Sounds like a blocker to me.
The fix I've committed to master is a one-liner with a very low risk since it only changes the "uid" variable to "user_uid", since it's what was intended. No need to say, it works as expected in my tests, and should be system-independent enough to be safe. What I still don't understand is how it has gone unnoticed for three weeks, even of myself. Lack of an active development and testing crew is very sad... OK to push that to the gnome-2-28 branch?
>From cb83e86d2dbb4df44e7d00a3ae809fe88a718547 Mon Sep 17 00:00:00 2001 From: Milan Bouchet-Valat <nalimi...@club.fr> Date: Sat, 19 Sep 2009 13:45:07 +0200 Subject: [PATCH] Fix checking whether an UID is free A mistake in variables could prevent user creation from working at all. We were comparing UIDs with an uninitialized int, leading to strange results. This was introduced by 36cdbf80fa16cfac1a15f24ee32c2b272f68e521. --- src/users/user-settings.c | 2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/src/users/user-settings.c b/src/users/user-settings.c index 74d68fe..227b27b 100644 --- a/src/users/user-settings.c +++ b/src/users/user-settings.c @@ -339,7 +339,7 @@ uid_exists (uid_t uid) while (valid) { user = oobs_list_get (list, &list_iter); - uid = oobs_user_get_uid (OOBS_USER (user)); + user_uid = oobs_user_get_uid (OOBS_USER (user)); g_object_unref (user); if (user_uid == uid) -- 1.6.0.4
_______________________________________________ desktop-devel-list mailing list desktop-devel-list@gnome.org http://mail.gnome.org/mailman/listinfo/desktop-devel-list