X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;f=ipc%2Fmqueue.c;h=9b7c8ab7d75cad27e92272c0a0c81927c9fbaa03;hb=f53d7ce32e13dbd09573b176e6521a04c2c77803;hp=9a142a290749f2af819c47ac487f2192c6502675;hpb=ac69e0928054ff29a5049902fb477f9c7605c773;p=karo-tx-linux.git diff --git a/ipc/mqueue.c b/ipc/mqueue.c index 9a142a290749..9b7c8ab7d75c 100644 --- a/ipc/mqueue.c +++ b/ipc/mqueue.c @@ -32,6 +32,7 @@ #include #include #include +#include #include #include @@ -542,9 +543,13 @@ static void __do_notify(struct mqueue_inode_info *info) sig_i.si_errno = 0; sig_i.si_code = SI_MESGQ; sig_i.si_value = info->notify.sigev_value; + /* map current pid/uid into info->owner's namespaces */ + rcu_read_lock(); sig_i.si_pid = task_tgid_nr_ns(current, ns_of_pid(info->notify_owner)); - sig_i.si_uid = current_uid(); + sig_i.si_uid = user_ns_map_uid(info->user->user_ns, + current_cred(), current_uid()); + rcu_read_unlock(); kill_pid_info(info->notify.sigev_signo, &sig_i, info->notify_owner);