1 --- sysvinit-2.86/src/killall5.c.orig 2004-12-26 23:07:15.505343096 +0100
2 +++ sysvinit-2.86/src/killall5.c 2004-12-26 23:20:43.017582576 +0100
4 if (p->argv0) free(p->argv0);
5 if (p->argv1) free(p->argv1);
6 if (p->pathname) free(p->pathname);
7 + if (p->statname) free(p->statname);
12 /* Open the status file. */
13 snprintf(path, sizeof(path), "/proc/%s/stat", d->d_name);
15 - /* Read SID & statname from it. */
16 + /* Read statname from it. */
17 if ((fp = fopen(path, "r")) != NULL) {
19 fgets(buf, sizeof(buf), fp);
21 /* Read program name. */
22 q = strrchr(buf, ')');
26 "can't get program name from %s\n",
35 /* Get session, startcode, endcode. */
36 startcode = endcode = 0;
37 - if (sscanf(q, "%*c %*d %*d %d %*d %*d %*u %*u "
38 + if (sscanf(q, "%*c %*d %*d %*d %*d %*d %*u %*u "
39 "%*u %*u %*u %*u %*u %*d %*d "
40 "%*d %*d %*d %*d %*u %*u %*d "
42 - &p->sid, &startcode, &endcode) != 3) {
43 + &startcode, &endcode) == 2) {
44 + if (startcode == 0 && endcode == 0)
48 + p->sid = getsid(pid);
51 - nsyslog(LOG_ERR, "can't read sid from %s\n",
53 + nsyslog(LOG_ERR, "can't read sid for pid %d\n", pid);
58 - if (startcode == 0 && endcode == 0)
62 /* Process disappeared.. */