develooper Front page | perl.ldap | Postings from February 2010

Re: Authen::SASL 2.13 infinite loop bug (resend?)

Thread Previous | Thread Next
From:
Forrest Cahoon
Date:
February 11, 2010 08:59
Subject:
Re: Authen::SASL 2.13 infinite loop bug (resend?)
Message ID:
ecc6a1261002110859q5ed82028vdfbcb80abc835613@mail.gmail.com
On Thu, Feb 11, 2010 at 9:43 AM, Graham Barr <gbarr@pobox.com> wrote:
> On Feb 11, 2010, at 9:10 AM, Forrest Cahoon wrote:

>
>> I'm porting some code from our old system to a new one, and I
>> encountered this bug with Authen::SASL 2.13 which was resolved by
>> downgrading to 2.12.
>
> I suspect this was caused by this change
>
> http://github.com/gbarr/perl-authen-sasl/commit/c636a0603732b031d9274e123dd4900749d8d5d9
>
> I do not know much about EXTERNAL, but what happens if we revert client_step to what it was ?

Reinstalling 2.13 from CPAN and uncommenting the client_step sub
worked, giving me the same results as I got with 2.12.

I also happened to notice there are some patch output files that get
installed in Authen/SASL/Perl -- a couple of .orig files and (somewhat
disconcertingly) a *.rej file.  They don't hurt anything, of course,
but should probably be cleaned up.

>> When I downgraded to Authen::SASL 2.12, I got a "success!" message
>> (yay!) but I also got an interesting stack trace from
>> Devel::Simpletrace:
>>
>> Use of uninitialized value in numeric gt (>)
>>       at Authen::SASL::Perl::securesocket(/usr/local/lib/perl5/site_perl/5.10.1/Authen/SASL/Perl.pm
>> line 130, <DATA>:275)

I eliminated this warning by adding a check for definedness. Even
though I don't really understand what the code does, this seems like a
pretty safe fix (since that's what its doing anyway after the
warning);

--- Authen/SASL/Perl.pm~	2009-09-23 23:38:17.000000000 -0500
+++ Authen/SASL/Perl.pm	2010-02-11 10:15:48.030213720 -0600
@@ -127,7 +127,7 @@

 sub securesocket {
   my $self = shift;
-  return $_[0] unless ($self->property('ssf') > 0);
+  return $_[0] unless (defined $self->property('ssf') &&
$self->property('ssf') > 0);

   local *GLOB; # avoid used only once warning
   my $glob = \do { local *GLOB; };

Thread Previous | Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About