[libnet-dbus-perl] 323/335: Check that select is returning a valid state

Intrigeri intrigeri at moszumanska.debian.org
Sat Mar 21 01:08:15 UTC 2015


This is an automated email from the git hooks/post-receive script.

intrigeri pushed a commit to branch experimental
in repository libnet-dbus-perl.

commit 77d7a249f86fc0fca6d1765c914d4e360e211441
Author: Philip Boulain <philip.boulain at smoothwall.net>
Date:   Mon Mar 16 18:49:57 2015 +0000

    Check that select is returning a valid state
    
    The Reactor's step() method assumes that any true select return value will
    have set the fd vectors to then dispatch callbacks appropriately, but if
    interrupted by a signal, select() returns -1 and leaves the vectors undefined.
    In practice in Linux this can leave them all set (as given as input), which
    will then cause handlers to misfire and potentialy block on read.
    
    Fixes RT #84998
---
 lib/Net/DBus/Reactor.pm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/Net/DBus/Reactor.pm b/lib/Net/DBus/Reactor.pm
index edefaeb..712938a 100644
--- a/lib/Net/DBus/Reactor.pm
+++ b/lib/Net/DBus/Reactor.pm
@@ -373,7 +373,7 @@ sub step {
     my $n = select($ro=$ri,$wo=$wi,$eo=$ei, (defined $timeout ? ($timeout ? $timeout/1000 : 0) : undef));
 
     @callbacks = ();
-    if ($n) {
+    if ($n > 0) {
 	push @callbacks, $self->_dispatch_fd("read", $ro);
 	push @callbacks, $self->_dispatch_fd("write", $wo);
 	push @callbacks, $self->_dispatch_fd("error", $eo);

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-perl/packages/libnet-dbus-perl.git



More information about the Pkg-perl-cvs-commits mailing list