diff options
author | Robert Ancell <robert.ancell@canonical.com> | 2011-09-30 15:48:00 +1000 |
---|---|---|
committer | Robert Ancell <robert.ancell@canonical.com> | 2011-09-30 15:48:00 +1000 |
commit | 7a8539871a5c022ba19d1676f5331076354c39c0 (patch) | |
tree | e3db69d1e1174149265ba80fcf6e123d14c4969b /liblightdm-qt | |
parent | 1beedaf39db037e3e893b8535071030f92c873cc (diff) | |
download | lightdm-7a8539871a5c022ba19d1676f5331076354c39c0.tar.gz |
Fix liblightdm-qt crashing when face images are installed
Diffstat (limited to 'liblightdm-qt')
-rw-r--r-- | liblightdm-qt/user.cpp | 34 |
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); } |