Re: signalfd() not handling sigqueue() sigval data correctly

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Davide Libenzi
Date: Wednesday, April 9, 2008 - 12:59 pm

On Tue, 8 Apr 2008, Michael Kerrisk wrote:


Michael, can you give the patch below a spin? I tested it on my x86_64 box 
and seems to be working fine:

Got signal 44
   ssi_code= -1
   ssi_pid = 6314
   ssi_uid = 1000
   ssi_int = 123
   ssi_ptr = 7b




- Davide


---
 fs/signalfd.c |    7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

Index: linux-2.6.mod/fs/signalfd.c
===================================================================
--- linux-2.6.mod.orig/fs/signalfd.c	2008-04-09 11:53:37.000000000 -0700
+++ linux-2.6.mod/fs/signalfd.c	2008-04-09 12:05:46.000000000 -0700
@@ -111,9 +111,14 @@
 		err |= __put_user(kinfo->si_uid, &uinfo->ssi_uid);
 		err |= __put_user((long) kinfo->si_ptr, &uinfo->ssi_ptr);
 		break;
-	default: /* this is just in case for now ... */
+	default:
+		/*
+		 * This case catches also the signals queued by sigqueue().
+		 */
 		err |= __put_user(kinfo->si_pid, &uinfo->ssi_pid);
 		err |= __put_user(kinfo->si_uid, &uinfo->ssi_uid);
+		err |= __put_user((long) kinfo->si_ptr, &uinfo->ssi_ptr);
+		err |= __put_user(kinfo->si_int, &uinfo->ssi_int);
 		break;
 	}
 
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
signalfd() not handling sigqueue() sigval data correctly, Michael Kerrisk, (Tue Apr 8, 2:09 pm)
Re: signalfd() not handling sigqueue() sigval data correctly, Michael Kerrisk, (Tue Apr 8, 11:31 pm)
Re: signalfd() not handling sigqueue() sigval data correctly, Davide Libenzi, (Wed Apr 9, 12:59 pm)
Re: signalfd() not handling sigqueue() sigval data correctly, Michael Kerrisk, (Wed Apr 9, 10:03 pm)
Re: signalfd() not handling sigqueue() sigval data correctly, Michael Kerrisk, (Thu Apr 10, 3:32 am)
Re: signalfd() not handling sigqueue() sigval data correctly, Davide Libenzi, (Thu Apr 10, 10:21 am)