]> git.pld-linux.org Git - packages/SysVinit.git/blame - sysvinit-killall5.patch
- does not require logrotate; rel 19
[packages/SysVinit.git] / sysvinit-killall5.patch
CommitLineData
612af2b6
JB
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
3@@ -193,6 +193,7 @@
4 if (p->argv0) free(p->argv0);
5 if (p->argv1) free(p->argv1);
437bcd41
AM
6 if (p->pathname) free(p->pathname);
7+ if (p->statname) free(p->statname);
8 free(p);
9 }
10 plist = NULL;
612af2b6 11@@ -210,7 +211,7 @@
437bcd41
AM
12 /* Open the status file. */
13 snprintf(path, sizeof(path), "/proc/%s/stat", d->d_name);
14
15- /* Read SID & statname from it. */
16+ /* Read statname from it. */
17 if ((fp = fopen(path, "r")) != NULL) {
18 buf[0] = 0;
612af2b6
JB
19 fgets(buf, sizeof(buf), fp);
20@@ -223,11 +224,11 @@
437bcd41
AM
21 /* Read program name. */
22 q = strrchr(buf, ')');
23 if (q == NULL) {
24- p->sid = 0;
25 nsyslog(LOG_ERR,
26 "can't get program name from %s\n",
27 path);
612af2b6
JB
28 free(p);
29+ fclose(fp);
30 continue;
31 }
32 s++;
33@@ -242,20 +243,23 @@
34
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 "
41 "%*u %lu %lu",
42- &p->sid, &startcode, &endcode) != 3) {
43+ &startcode, &endcode) == 2) {
44+ if (startcode == 0 && endcode == 0)
45+ p->kernel = 1;
46+ }
47+ fclose(fp);
48+ p->sid = getsid(pid);
49+ if (p->sid < 0) {
50 p->sid = 0;
437bcd41
AM
51- nsyslog(LOG_ERR, "can't read sid from %s\n",
52- path);
612af2b6
JB
53+ nsyslog(LOG_ERR, "can't read sid for pid %d\n", pid);
54+ free(p->statname);
55 free(p);
56 continue;
57 }
58- if (startcode == 0 && endcode == 0)
59- p->kernel = 1;
60- fclose(fp);
437bcd41
AM
61 } else {
62 /* Process disappeared.. */
63 free(p);
This page took 0.029353 seconds and 4 git commands to generate.