diff --git a/killproc-2.17.dif b/killproc-2.17.dif index e8bad6e..e7dc6c7 100644 --- a/killproc-2.17.dif +++ b/killproc-2.17.dif @@ -1,4 +1,58 @@ ---- .dummy -+++ .dummy 2010-10-21 09:54:54.587926689 +0000 -@@ -0,0 +1 @@ -+Just a dummy, remove for a real patch +--- libinit.c ++++ libinit.c 2010-10-27 08:17:06.371926813 +0000 +@@ -728,19 +728,21 @@ int pidof (const char * inname, const ch + if (!(flags & (KTHREAD|KSHORT)) && !isscrpt) { + char entry[PATH_MAX+1]; + char *realname = NULL; +- const char *name; ++ const char *name = NULL; + boolean found; + +- if ((rll = readlinkat(dfd, here(d->d_name, "exe"), entry, PATH_MAX)) < 0) { +- if (errno != EPERM && errno != EACCES) +- goto risky; +- continue; +- } +- entry[rll] = '\0'; +- name = handl_buf(entry); ++ if (prefix) { ++ if ((rll = readlinkat(dfd, here(d->d_name, "exe"), entry, PATH_MAX)) < 0) { ++ if (errno != EPERM && errno != EACCES) ++ goto risky; ++ continue; ++ } ++ entry[rll] = '\0'; ++ name = handl_buf(entry); + +- if (prefix && find_mount(name) != prefix) +- continue; ++ if (find_mount(name) != prefix) ++ continue; ++ } + + if (fstatat(dfd, here(d->d_name, "exe"), &pid_st, 0) < 0) { + if (errno != EPERM && errno != EACCES) +@@ -765,12 +767,22 @@ int pidof (const char * inname, const ch + if (strlen(fullname) > PATH_MAX) + continue; + ++ if (!name) { ++ if ((rll = readlinkat(dfd, here(d->d_name, "exe"), entry, PATH_MAX)) < 0) { ++ if (errno != EPERM && errno != EACCES) ++ goto risky; ++ continue; ++ } ++ entry[rll] = '\0'; ++ name = handl_buf(entry); ++ } ++ + if (strncmp(fullname, name, PATH_MAX) == 0) { + found = true; + break; + } + +- if ((realname = realpath(name, NULL)) == (char*)0) ++ if ((realname = realpath(fullname, NULL)) == (char*)0) + continue; + + if (strncmp(realname, name, PATH_MAX) == 0) diff --git a/sysvinit.changes b/sysvinit.changes index 48de5a8..6938374 100644 --- a/sysvinit.changes +++ b/sysvinit.changes @@ -1,3 +1,8 @@ +------------------------------------------------------------------- +Wed Oct 27 12:46:16 CEST 2010 - werner@suse.de + +- Fix cast&past error in killproc/checkproc + ------------------------------------------------------------------- Thu Oct 21 12:00:26 CEST 2010 - werner@suse.de