X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;f=fs%2Fsignalfd.c;h=8ead0db359339ca7f5986e3b89ff3b245938557e;hb=6de3d58dcfbab516dbe9aff36ea9542f40cd1bf2;hp=fb7f7e8034df512db10978276d7c2cf8f9cc0a75;hpb=5c8e191e8437616a498a8e1cc0af3dd0d32bbff2;p=karo-tx-linux.git diff --git a/fs/signalfd.c b/fs/signalfd.c index fb7f7e8034df..8ead0db35933 100644 --- a/fs/signalfd.c +++ b/fs/signalfd.c @@ -27,6 +27,7 @@ #include #include #include +#include struct signalfd_ctx { sigset_t sigmask; @@ -66,7 +67,7 @@ static int signalfd_copyinfo(struct signalfd_siginfo __user *uinfo, BUILD_BUG_ON(sizeof(struct signalfd_siginfo) != 128); /* - * Unused memebers should be zero ... + * Unused members should be zero ... */ err = __clear_user(uinfo, sizeof(*uinfo)); @@ -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; }