I was playing with salinfo_decode on an older kernel (2.4.21 era) and it
would normally die silently right after exec.
This no longer happens because of a semantic difference that occurred in
later 2.4 kernels. Older 2.4s would return -EINTR when they wanted
userspace to try again, while current 2.4s use -ERESTARTSYS. (The
surrounding code is also somewhat different, but it looks like the idea
is the same).
If salinfo_decode detects an EINTR, it will silently exit the main loop.
This patch corrects the problem for me on older kernels, and should have
no effect for current kernels. Hopefully this is what the author
originally intended.
Signed-off-by: dann frazier <[EMAIL PROTECTED]>
--- salinfo-0.7.orig/salinfo_decode.c Tue Oct 5 09:23:33 2004
+++ salinfo-0.7/salinfo_decode.c Fri Apr 8 15:06:40 2005
@@ -235,7 +235,7 @@
char filename[PATH_MAX];
if (read(fd_event, text, sizeof(text)) <= 0) {
if (errno == EINTR)
- ret = 0;
+ continue;
else
perror(event_filename);
goto out;
--- salinfo-0.7.orig/salinfo_decode.c Tue Oct 5 09:23:33 2004
+++ salinfo-0.7/salinfo_decode.c Fri Apr 8 15:06:40 2005
@@ -235,7 +235,7 @@
char filename[PATH_MAX];
if (read(fd_event, text, sizeof(text)) <= 0) {
if (errno == EINTR)
- ret = 0;
+ continue;
else
perror(event_filename);
goto out;