Package: timeoutd Version: 1.5-10.1 Severity: important Tags: patch The main problem - the process dies with segmentation fauils trying to throw the user away. After this the user is able to log in and work without time limitations. After checking the code the following problems have been found (both in function getcpid() ):
1. The function does not close the files after checking for ssh process. This leads to the "too i many open files" error after a few user kicks. 2. The function does not brake execution if the process does not exist. It writes the corresponding error to the log, but on the next step tries to read from the unexisting file (which leads to segfault) The following patch is offered to fix the problem: --- timeoutd.c.orig 2010-03-08 10:12:26.000000000 +0100 +++ timeoutd.c 2010-03-08 10:12:47.000000000 +0100 @@ -1601,12 +1601,15 @@ if(cont->d_type == 4 && isdigit(cont->d_name[0])) { /* check only PIDs */ sprintf(path, "/proc/%s/status", cont->d_name); proc_file = fopen(path, "r"); - if(!proc_file) + if(!proc_file) { printf("error opening proc status file %s\n", path); - + return 0; /* no child exists */ + } while(!fscanf(proc_file, "PPid: %s", akt_pid)) fgets(akt_pid, 10, proc_file); + fclose(proc_file); + if(atoi(akt_pid) == ppid) return (pid_t)atoi(cont->d_name); /* return pid of child */ } /* if(cont->d_type == 4) */ -- System Information: Debian Release: 5.0.4 APT prefers stable APT policy: (700, 'stable'), (600, 'unstable'), (500, 'experimental') Architecture: amd64 (x86_64) Kernel: Linux 2.6.26-2-amd64 (SMP w/1 CPU core) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/bash Versions of packages timeoutd depends on: ii libc6 2.7-18lenny2 GNU C Library: Shared libraries ii libx11-6 2:1.1.5-2 X11 client-side library ii libxext6 2:1.0.4-2 X11 miscellaneous extension librar ii libxss1 1:1.1.3-1 X11 Screen Saver extension library timeoutd recommends no packages. timeoutd suggests no packages.
signature.asc
Description: This is a digitally signed message part.