[libvirt] [PATCH] virNetClientSetTLSSession: Restore original signal mask

Michal Privoznik mprivozn at redhat.com
Thu Mar 20 17:17:57 UTC 2014


On 20.03.2014 18:13, Eric Blake wrote:
> On 03/19/2014 11:42 AM, Eric Blake wrote:
>> On 03/19/2014 11:29 AM, Michal Privoznik wrote:
>>> Currently, we use pthread_sigmask(SIG_BLOCK, ...) prior to calling
>>> poll(). This is okay, as we don't want poll() to be interrupted.
>>> However, then - immediately as we fall out from the poll() - we try to
>>> restore the original sigmask - again using SIG_BLOCK. But as the man
>>> page says, SIG_BLOCK adds signals to the signal mask:
>>>
>>> SIG_BLOCK
>>>        The set of blocked signals is the union of the current set and the set argument.
>>>
>>> Therefore, when restoring the original mask, we need to completely
>>> overwrite the one we set earlier and hence we should be using:
>>>
>>> SIG_SETMASK
>>>        The set of blocked signals is set to the argument set.
>>>
>>> Signed-off-by: Michal Privoznik <mprivozn at redhat.com>
>>> ---
>>>
>>> Notes:
>>>      This is a very old bug. It's worth backporting onto all maint branches we have.
>>>
>>>   src/rpc/virnetclient.c | 4 ++--
>>>   1 file changed, 2 insertions(+), 2 deletions(-)
>>
>> ACK.  And yes, it needs to be backported.
>
> Now done to all the active -maint branches.
>
>

Thank you, I was planning to do that later, but got distracted ...

Michal




More information about the libvir-list mailing list