X-Git-Url: http://pileus.org/git/?a=blobdiff_plain;f=fs%2Fsignalfd.c;h=8ead0db359339ca7f5986e3b89ff3b245938557e;hb=92794a5d6359f9e8ed0d43fe0f3c653f748dcc90;hp=2d3e107da2d3d009d49b505e1110c711f8d25112;hpb=f5bb3a5e9dcdb8435471562b6cada89525cf4df1;p=~andy%2Flinux diff --git a/fs/signalfd.c b/fs/signalfd.c index 2d3e107da2d..8ead0db3593 100644 --- a/fs/signalfd.c +++ b/fs/signalfd.c @@ -27,6 +27,7 @@ #include #include #include +#include struct signalfd_ctx { sigset_t sigmask; @@ -110,9 +111,14 @@ static int signalfd_copyinfo(struct signalfd_siginfo __user *uinfo, 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; }