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

Eric Blake eblake at redhat.com
Thu Mar 20 17:13:44 UTC 2014


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.


-- 
Eric Blake   eblake redhat com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 604 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20140320/fde7d902/attachment-0001.sig>


More information about the libvir-list mailing list