summaryrefslogtreecommitdiff
path: root/liblightdm-qt
diff options
context:
space:
mode:
authorRobert Ancell <robert.ancell@canonical.com>2011-09-30 15:48:00 +1000
committerRobert Ancell <robert.ancell@canonical.com>2011-09-30 15:48:00 +1000
commit7a8539871a5c022ba19d1676f5331076354c39c0 (patch)
treee3db69d1e1174149265ba80fcf6e123d14c4969b /liblightdm-qt
parent1beedaf39db037e3e893b8535071030f92c873cc (diff)
downloadlightdm-7a8539871a5c022ba19d1676f5331076354c39c0.tar.gz
Fix liblightdm-qt crashing when face images are installed
Diffstat (limited to 'liblightdm-qt')
-rw-r--r--liblightdm-qt/user.cpp34
1 files changed, 12 insertions, 22 deletions
diff --git a/liblightdm-qt/user.cpp b/liblightdm-qt/user.cpp
index 3a34dc18..1f5cd5f4 100644
--- a/liblightdm-qt/user.cpp
+++ b/liblightdm-qt/user.cpp
@@ -199,15 +199,9 @@ QList<User> UsersModel::getUsers()
setpwent();
while(TRUE)
- {
- struct passwd *entry;
- QStringList tokens;
- QString realName, image;
- QFile *imageFile;
- int i;
-
+ {
errno = 0;
- entry = getpwent();
+ struct passwd *entry = getpwent();
if(!entry) {
break;
}
@@ -228,24 +222,20 @@ QList<User> UsersModel::getUsers()
continue;
}
- tokens = QString(entry->pw_gecos).split(",");
- if(tokens.size() > 0 && tokens.at(i) != "")
- realName = tokens.at(i);
+ QStringList tokens = QString(entry->pw_gecos).split(",");
+ QString realName;
+ if(tokens.size() > 0 && tokens.at(0) != "")
+ realName = tokens.at(0);
- //replace this with QFile::exists();
QDir homeDir(entry->pw_dir);
- imageFile = new QFile(homeDir.filePath(".face"));
- if(!imageFile->exists()) {
- delete imageFile;
- imageFile = new QFile(homeDir.filePath(".face.icon"));
- }
- if(imageFile->exists())
- {
- delete imageFile;
- imageFile = NULL;
+ QString image = homeDir.filePath(".face");
+ if(!QFile::exists (image)) {
+ image = homeDir.filePath(".face.icon");
+ if(!QFile::exists (image))
+ image = "";
}
- User user(entry->pw_name, realName, entry->pw_dir, imageFile->fileName(), false);
+ User user(entry->pw_name, realName, entry->pw_dir, image, false);
users.append(user);
}