[CRITICAL] Repair KDM user list with LDAP

git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdebase@1181776 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
v3.5.13-sru
tpearson 14 years ago
parent ac7b651712
commit 52fcbf9fce

@ -400,7 +400,7 @@ KGreeter::insertUsers(int limit_users)
}
if (_showUsers == SHOW_ALL) {
UserList noUsers( _noUsers );
TQDict<int> dupes( 1000 );
TQDict<int> dupes( 1000 ); // Potential crash risk with buffer overrun?
TQStringList toinsert;
int count = 0;
for (setpwent(); (ps = getpwent()) != 0;) {
@ -421,36 +421,39 @@ KGreeter::insertUsers(int limit_users)
}
}
}
if ( limit_users >= 0 && ++count > limit_users ) {
utmpname( _PATH_WTMP );
setutxent();
toinsert = TQStringList();
dupes.clear();
for ( count = 0; count < limit_users; ) {
struct utmpx * ent = getutxent();
if ( !ent )
break;
struct passwd *ps = getpwnam( ent->ut_user );
if (ps && *ps->pw_dir && *ps->pw_shell &&
(ps->pw_uid >= (unsigned)_lowUserId ||
!ps->pw_uid && _showRoot) &&
ps->pw_uid <= (unsigned)_highUserId &&
!noUsers.hasUser( ps->pw_name ) &&
!noUsers.hasGroup( ps->pw_gid ))
{
TQString username( TQFile::decodeName( ent->ut_user ) );
if (!dupes.find( username )) {
dupes.insert( username, (int *)-1 );
toinsert.append( username );
count++;
}
}
}
endutxent();
}
// FIXME: OpenSUSE added this code
// For some reason it does not allow LDAP users to be listed (!),
// therefore it was deactivated. It should be repaired and reactivated.
// if ( limit_users >= 0 && ++count > limit_users ) {
// utmpname( _PATH_WTMP );
// setutxent();
// toinsert = TQStringList();
// dupes.clear();
//
// for ( count = 0; count < limit_users; ) {
// struct utmpx * ent = getutxent();
// if ( !ent )
// break;
// struct passwd *ps = getpwnam( ent->ut_user );
// if (ps && *ps->pw_dir && *ps->pw_shell &&
// (ps->pw_uid >= (unsigned)_lowUserId ||
// !ps->pw_uid && _showRoot) &&
// ps->pw_uid <= (unsigned)_highUserId &&
// !noUsers.hasUser( ps->pw_name ) &&
// !noUsers.hasGroup( ps->pw_gid ))
// {
// TQString username( TQFile::decodeName( ent->ut_user ) );
// if (!dupes.find( username )) {
// dupes.insert( username, (int *)-1 );
// toinsert.append( username );
// count++;
// }
// }
//
//
// }
// endutxent();
// }
for ( TQStringList::ConstIterator it = toinsert.begin();
it != toinsert.end(); ++it )

@ -98,9 +98,10 @@ KonqFrameStatusBar::KonqFrameStatusBar( KonqFrame *_parent, const char *_name )
m_progressBar->hide();
addWidget( m_progressBar, 0, true /*permanent->right align*/ );
StatusBarNetworkStatusIndicator * indicator = new StatusBarNetworkStatusIndicator( this, "networkstatusindicator" );
addWidget( indicator, 0, false );
indicator->init();
// // FIXME: This was added by OpenSUSE; someone needs to figure out what it does and how to fix it!
// StatusBarNetworkStatusIndicator * indicator = new StatusBarNetworkStatusIndicator( this, "networkstatusindicator" );
// addWidget( indicator, 0, false );
// indicator->init();
fontChange(TQFont());
installEventFilter( this );

Loading…
Cancel
Save