<p dir="ltr"><br>
On Oct 12, 2015 10:50, &quot;Pavel Emelyanov&quot; &lt;<a href="mailto:xemul@parallels.com">xemul@parallels.com</a>&gt; wrote:<br>
&gt;<br>
&gt; On 10/09/2015 10:47 PM, Andrey Vagin wrote:<br>
&gt; &gt; From: Andrew Vagin &lt;<a href="mailto:avagin@openvz.org">avagin@openvz.org</a>&gt;<br>
&gt; &gt;<br>
&gt; &gt; We need to use SIG_SETMASK instead of SIG_BLOCK.<br>
&gt;<br>
&gt; Why?<br>
&gt;<br>
&gt; &gt; SIG_SETMASK<br>
&gt; &gt;       The set of blocked signals is set to the argument set.</p>
<p dir="ltr">Because sig_setmask sets a specified mask, sig_blockmask adds signals from a specified mask to the current mask</p>
<p dir="ltr">&gt; &gt;<br>
&gt; &gt; Signed-off-by: Andrew Vagin &lt;<a href="mailto:avagin@openvz.org">avagin@openvz.org</a>&gt;<br>
&gt; &gt; ---<br>
&gt; &gt;  namespaces.c | 2 +-<br>
&gt; &gt;  sysctl.c     | 2 +-<br>
&gt; &gt;  2 files changed, 2 insertions(+), 2 deletions(-)<br>
&gt; &gt;<br>
&gt; &gt; diff --git a/namespaces.c b/namespaces.c<br>
&gt; &gt; index 7d0690c..4233c59 100644<br>
&gt; &gt; --- a/namespaces.c<br>
&gt; &gt; +++ b/namespaces.c<br>
&gt; &gt; @@ -1201,7 +1201,7 @@ int stop_usernsd(void)<br>
&gt; &gt;                       ret = -1;<br>
&gt; &gt;<br>
&gt; &gt;               usernsd_pid = 0;<br>
&gt; &gt; -             sigprocmask(SIG_BLOCK, &amp;oldmask, NULL);<br>
&gt; &gt; +             sigprocmask(SIG_SETMASK, &amp;oldmask, NULL);<br>
&gt; &gt;<br>
&gt; &gt;               if (ret != 0)<br>
&gt; &gt;                       pr_err(&quot;UNS: daemon exited abnormally\n&quot;);<br>
&gt; &gt; diff --git a/sysctl.c b/sysctl.c<br>
&gt; &gt; index 7dd08ba..489c599 100644<br>
&gt; &gt; --- a/sysctl.c<br>
&gt; &gt; +++ b/sysctl.c<br>
&gt; &gt; @@ -314,7 +314,7 @@ static int __userns_sysctl_op(void *arg, int proc_fd, pid_t pid)<br>
&gt; &gt;               kill(worker, SIGKILL);<br>
&gt; &gt;               goto out;<br>
&gt; &gt;       }<br>
&gt; &gt; -     sigprocmask(SIG_BLOCK, &amp;oldmask, NULL);<br>
&gt; &gt; +     sigprocmask(SIG_SETMASK, &amp;oldmask, NULL);<br>
&gt; &gt;<br>
&gt; &gt;       if (!WIFEXITED(status) || WEXITSTATUS(status)) {<br>
&gt; &gt;               pr_err(&quot;worker failed: %d\n&quot;, status);<br>
&gt; &gt;<br>
&gt;<br>
</p>