[PATCH] AnyEvent::Handle

Maxime Soulé btik-cpan at scoubidou.com
Tue Jul 3 10:55:56 CEST 2012


Hello Marc,

Le 30.03.2012 05:10, Marc Lehmann a écrit :
> On Mon, Mar 26, 2012 at 03:07:08PM +0200, Maxime Soulé<btik-cpan at scoubidou.com>  wrote:
>> In one case, there is a problem when handling bogus serialized
>> Storable data.
>
> This is the patch I actually applied, it should improve my and your code in
> almost every respect :) It would be gerat if you could give it a test (or the
> cvs version of AnyEvent, but there are a lot of changes going on there).
>
> http://ue.tst.eu/ad155ce1c025fcfcb2beda9a2c17807b.txt
>

In fact, better late than never :), there is a problem with this 
"improvement":

eval { $cb->($_[0], Storable::thaw ($data)); 1 }
    or return $_[0]->_error (Errno::EBADMSG);

If an exception is thrown by the callback, it will be trapped and 
assimilated to a "Bad Message", which is wrong...

I think that exceptions thrown by the callback should not be caught at 
this level.

To avoid using a local variable, it can be changed to :

$cb->($_[0], eval { Storable::thaw ($data) } || return $_[0]->_error 
(Errno::EBADMSG));

Best regards,

Max.



More information about the anyevent mailing list