Support kernel >= 2.6.36

Thanks to Novell and Ilya


git-svn-id: svn://anonsvn.kde.org/home/kde/branches/trinity/kdelibs@1222098 283d02a7-25f6-0310-bc7c-ecb5cbfe19da
v3.5.13-sru
tpearson 14 years ago
parent 374d939d8a
commit f0023a8307

@ -44,11 +44,30 @@ static int set_protection( pid_t pid, int enable )
{
char buf[ 1024 ];
int procfile;
struct stat st;
/* Newer kernels (noticed in 2.6.36) */
sprintf( buf, "/proc/%d/oom_score_adj", pid );
if ( lstat (buf, &st) == 0) {
if( !enable ) {
/* Be paranoid and check that the pid we got from the pipe
belongs to this user. */
if( st.st_uid != getuid())
return 0;
}
procfile = open(buf, O_WRONLY);
if( enable )
write( procfile, "-300", sizeof( "-300" ));
else
write( procfile, "0", sizeof( "0" ));
close( procfile );
return 1;
}
sprintf( buf, "/proc/%d/stat", pid );
if( !enable ) {
/* Be paranoid and check that the pid we got from the pipe
belongs to this user. */
struct stat st;
if( lstat( buf, &st ) < 0 || st.st_uid != getuid())
return 0;
}

Loading…
Cancel
Save