On Thu, Feb 11, 2010 at 9:43 AM, Graham Barr <gb...@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; };