1 diff -u sysvinit-2.88dsf/src/killall5.c sysvinit-2.88dsf/src/killall5.c
2 --- sysvinit-2.88dsf/src/killall5.c 2011-12-03 23:12:52.373139250 +0100
3 +++ sysvinit-2.88dsf/src/killall5.c 2011-12-03 23:19:21.498025134 +0100
5 /* Open the status file. */
6 snprintf(path, sizeof(path), "%s/stat", d->d_name);
8 - /* Read SID & statname from it. */
9 + /* Read statname from it. */
10 if ((fp = fopen(path, "r")) != NULL) {
12 fgets(buf, sizeof(buf), fp);
14 /* Read program name. */
15 q = strrchr(buf, ')');
19 "can't get program name from /proc/%s\n",
22 if (p->argv1) free(p->argv1);
23 if (p->statname) free(p->statname);
31 /* Get session, startcode, endcode. */
32 startcode = endcode = 0;
33 - if (sscanf(q, "%*c %*d %*d %d %*d %*d %*u %*u "
34 + if (sscanf(q, "%*c %*d %*d %*d %*d %*d %*u %*u "
35 "%*u %*u %*u %*u %*u %*d %*d "
36 "%*d %*d %*d %*d %*u %*u %*d "
38 - &p->sid, &startcode, &endcode) != 3) {
39 + &startcode, &endcode) == 2) {
40 + if (startcode == 0 && endcode == 0)
44 + p->sid = getsid(pid);
47 - nsyslog(LOG_ERR, "can't read sid from %s\n",
49 + nsyslog(LOG_ERR, "can't read sid for pid %d\n", pid);
50 if (p->argv0) free(p->argv0);
51 if (p->argv1) free(p->argv1);
52 if (p->statname) free(p->statname);
56 - if (startcode == 0 && endcode == 0)
60 /* Process disappeared.. */
61 if (p->argv0) free(p->argv0);