Skip Menu |

This queue is for tickets about the Net-DNS-SEC CPAN distribution.

Report information
The Basics
Id: 30215
Status: resolved
Priority: 0/
Queue: Net-DNS-SEC

People
Owner: Nobody in particular
Requestors: Ulrich.Wisser [...] iis.se
Cc:
AdminCc:

Bug Information
Severity: (no value)
Broken in: (no value)
Fixed in: (no value)



Subject: Net::DNS::RR::DS->string bubblebabble error
Date: Tue, 23 Oct 2007 11:57:35 +0200
To: <bug-Net-DNS-SEC [...] rt.cpan.org>
From: "Ulrich Wisser" <Ulrich.Wisser [...] iis.se>
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hello, while trying some new code for the .se zone I found an error in the Net::DNS::RR::DS package. When the string method of a Net::DNS:RR::DS object is called, and the digestbin is not given the package will enter an endless loop. Because AUTOLOAD will fail to load digestbin and will call the string method once again for the error message. I included a small script to reproduce the error. And I also included perl -V. Regards, Ulrich use Net::DNS::RR; $|=1; my $ds1 = Net::DNS::RR->new( 'algorithm' => 3, 'class' => 'IN', 'digest' => '1234567890ABCDEF', 'digtype' => 5, 'keytag' => 123, 'name' => 'test1dom1.se', 'ttl' => 43200, 'type' => 'DS', 'digestbin' => '' ); #error only occurs when next line is commented #print 'Digest 1: '.$ds1->string."\n"; my $ds2 = Net::DNS::RR->new( 'algorithm' => 3, 'class' => 'IN', 'digest' => '1234567890ABCDEF', 'digtype' => 5, 'keytag' => 123, 'name' => 'test1dom1.se', 'ttl' => 43200, 'type' => 'DS', ); print 'Digest 2: '.$ds2->string."\n"; Summary of my perl5 (revision 5 version 8 subversion 7) configuration: Platform: osname=linux, osvers=2.6.10, archname=i486-linux-gnu-thread-multi uname='linux rothera 2.6.10 #1 smp fri may 13 09:24:22 utc 2005 i686 gnulinux ' config_args='-Dusethreads -Duselargefiles -Dccflags=-DDEBIAN -Dcccdlflags=-fPIC -Darchname=i486-linux-gnu -Dprefix=/usr -Dprivlib=/usr/share/perl/5.8 -Darchlib=/usr/lib/perl/5.8 -Dvendorprefix=/usr -Dvendorlib=/usr/share/perl5 -Dvendorarch=/usr/lib/perl5 -Dsiteprefix=/usr/local -Dsitelib=/usr/local/share/perl/5.8.7 -Dsitearch=/usr/local/lib/perl/5.8.7 -Dman1dir=/usr/share/man/man1 -Dman3dir=/usr/share/man/man3 -Dsiteman1dir=/usr/local/man/man1 -Dsiteman3dir=/usr/local/man/man3 -Dman1ext=1 -Dman3ext=3perl -Dpager=/usr/bin/sensible-pager -Uafs -Ud_csh -Uusesfio -Uusenm -Duseshrplib -Dlibperl=libperl.so.5.8.7 -Dd_dosuid -des' hint=recommended, useposix=true, d_sigaction=define usethreads=define use5005threads=undef useithreads=define usemultiplicity=define useperlio=define d_sfio=undef uselargefiles=define usesocks=undef use64bitint=undef use64bitall=undef uselongdouble=undef usemymalloc=n, bincompat5005=undef Compiler: cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBIAN -fno-strict-aliasing -pipe -I/usr/local/include -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', optimize='-O2', cppflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBIAN -fno-strict-aliasing -pipe -I/usr/local/include' ccversion='', gccversion='4.0.3 20051204 (prerelease) (Ubuntu 4.0.2-5ubuntu2)', gccosandvers='' intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234 d_longlong=define, longlongsize=8, d_longdbl=define, longdblsize=12 ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', lseeksize=8 alignbytes=4, prototype=define Linker and Libraries: ld='cc', ldflags =' -L/usr/local/lib' libpth=/usr/local/lib /lib /usr/lib libs=-lgdbm -lgdbm_compat -ldb -ldl -lm -lpthread -lc -lcrypt perllibs=-ldl -lm -lpthread -lc -lcrypt libc=/lib/libc-2.3.5.so, so=so, useshrplib=true, libperl=libperl.so.5.8.7 gnulibc_version='2.3.5' Dynamic Linking: dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E' cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib' Characteristics of this binary (from libperl): Compile-time options: MULTIPLICITY USE_ITHREADS USE_LARGE_FILES PERL_IMPLICIT_CONTEXT Locally applied patches: SPRINTF0 - fixes for sprintf formatting issues - CVE-2005-3962 Built under linux Compiled at Dec 16 2005 07:48:39 %ENV: PERLLIB="/home/ulrich/services/SEServ/lib/" @INC: /home/ulrich/services/SEServ/lib/ /etc/perl /usr/local/lib/perl/5.8.7 /usr/local/share/perl/5.8.7 /usr/lib/perl5 /usr/share/perl5 /usr/lib/perl/5.8 /usr/share/perl/5.8 /usr/local/lib/site_perl . -----BEGIN PGP SIGNATURE----- Version: PGP 8.1 iQA/AwUBRx3Fjy9yrDO0wHQwEQIm/QCbBBO3jaKbfrbRnleK8Q4NBCX1/C8AmgKp 81NayV+OwArH6sj8b6TDnLrI =lPTZ -----END PGP SIGNATURE-----
On Tue Oct 23 06:04:36 2007, Ulrich.Wisser@iis.se wrote: Show quoted text
> > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Hello, > > while trying some new code for the .se zone I found an error in the > Net::DNS::RR::DS package. > > When the string method of a Net::DNS:RR::DS object is called, and the > digestbin is not given the package will enter an endless loop. > Because AUTOLOAD will fail to load digestbin and will call the > string method once again for the error message. >
I can't reproduce the error with the piece of code supplied. I am puzzled. Because the string method uses the rdatastr method of Net::DNS::RR::DS which does not call the digestbin method. Show quoted text
> I included a small script to reproduce the error. And I also included > perl -V. > > Regards, > > Ulrich > > > > use Net::DNS::RR; > > $|=1; > > my $ds1 = Net::DNS::RR->new( > 'algorithm' => 3, > 'class' => 'IN', > 'digest' => '1234567890ABCDEF', > 'digtype' => 5, > 'keytag' => 123, > 'name' => 'test1dom1.se', > 'ttl' => 43200, > 'type' => 'DS', > 'digestbin' => '' > ); > #error only occurs when next line is commented > #print 'Digest 1: '.$ds1->string."\n"; > > my $ds2 = Net::DNS::RR->new( > 'algorithm' => 3, > 'class' => 'IN', > 'digest' => '1234567890ABCDEF', > 'digtype' => 5, > 'keytag' => 123, > 'name' => 'test1dom1.se', > 'ttl' => 43200, > 'type' => 'DS', > ); > print 'Digest 2: '.$ds2->string."\n"; > > > > > > > > Summary of my perl5 (revision 5 version 8 subversion 7) configuration: > Platform: > osname=linux, osvers=2.6.10, archname=i486-linux-gnu-thread-multi > uname='linux rothera 2.6.10 #1 smp fri may 13 09:24:22 utc 2005 > i686 gnulinux ' > config_args='-Dusethreads -Duselargefiles -Dccflags=-DDEBIAN > -Dcccdlflags=-fPIC -Darchname=i486-linux-gnu -Dprefix=/usr > -Dprivlib=/usr/share/perl/5.8 -Darchlib=/usr/lib/perl/5.8 > -Dvendorprefix=/usr -Dvendorlib=/usr/share/perl5 > -Dvendorarch=/usr/lib/perl5 -Dsiteprefix=/usr/local > -Dsitelib=/usr/local/share/perl/5.8.7 > -Dsitearch=/usr/local/lib/perl/5.8.7 -Dman1dir=/usr/share/man/man1 > -Dman3dir=/usr/share/man/man3 -Dsiteman1dir=/usr/local/man/man1 > -Dsiteman3dir=/usr/local/man/man3 -Dman1ext=1 -Dman3ext=3perl > -Dpager=/usr/bin/sensible-pager -Uafs -Ud_csh -Uusesfio -Uusenm > -Duseshrplib -Dlibperl=libperl.so.5.8.7 -Dd_dosuid -des' > hint=recommended, useposix=true, d_sigaction=define > usethreads=define use5005threads=undef useithreads=define > usemultiplicity=define > useperlio=define d_sfio=undef uselargefiles=define usesocks=undef > use64bitint=undef use64bitall=undef uselongdouble=undef > usemymalloc=n, bincompat5005=undef > Compiler: > cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS > -DDEBIAN -fno-strict-aliasing -pipe -I/usr/local/include > -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', > optimize='-O2', > cppflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBIAN > -fno-strict-aliasing -pipe -I/usr/local/include' > ccversion='', gccversion='4.0.3 20051204 (prerelease) (Ubuntu > 4.0.2-5ubuntu2)', gccosandvers='' > intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234 > d_longlong=define, longlongsize=8, d_longdbl=define, > longdblsize=12 > ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', > lseeksize=8 > alignbytes=4, prototype=define > Linker and Libraries: > ld='cc', ldflags =' -L/usr/local/lib' > libpth=/usr/local/lib /lib /usr/lib > libs=-lgdbm -lgdbm_compat -ldb -ldl -lm -lpthread -lc -lcrypt > perllibs=-ldl -lm -lpthread -lc -lcrypt > libc=/lib/libc-2.3.5.so, so=so, useshrplib=true, > libperl=libperl.so.5.8.7 > gnulibc_version='2.3.5' > Dynamic Linking: > dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E' > cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib' > > > Characteristics of this binary (from libperl): > Compile-time options: MULTIPLICITY USE_ITHREADS USE_LARGE_FILES > PERL_IMPLICIT_CONTEXT > Locally applied patches: > SPRINTF0 - fixes for sprintf formatting issues - CVE-2005-3962 > Built under linux > Compiled at Dec 16 2005 07:48:39 > %ENV: > PERLLIB="/home/ulrich/services/SEServ/lib/" > @INC: > /home/ulrich/services/SEServ/lib/ > /etc/perl > /usr/local/lib/perl/5.8.7 > /usr/local/share/perl/5.8.7 > /usr/lib/perl5 > /usr/share/perl5 > /usr/lib/perl/5.8 > /usr/share/perl/5.8 > /usr/local/lib/site_perl > . > -----BEGIN PGP SIGNATURE----- > Version: PGP 8.1 > > iQA/AwUBRx3Fjy9yrDO0wHQwEQIm/QCbBBO3jaKbfrbRnleK8Q4NBCX1/C8AmgKp > 81NayV+OwArH6sj8b6TDnLrI > =lPTZ > -----END PGP SIGNATURE-----
On Tue Oct 23 06:04:36 2007, Ulrich.Wisser@iis.se wrote: Show quoted text
> > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > Hello, > > while trying some new code for the .se zone I found an error in the > Net::DNS::RR::DS package. > > When the string method of a Net::DNS:RR::DS object is called, and the > digestbin is not given the package will enter an endless loop. > Because AUTOLOAD will fail to load digestbin and will call the > string method once again for the error message. >
I can't reproduce the error with the piece of code supplied. I am puzzled. Because the string method uses the rdatastr method of Net::DNS::RR::DS which does not call the digestbin method. Show quoted text
> I included a small script to reproduce the error. And I also included > perl -V. > > Regards, > > Ulrich > > > > use Net::DNS::RR; > > $|=1; > > my $ds1 = Net::DNS::RR->new( > 'algorithm' => 3, > 'class' => 'IN', > 'digest' => '1234567890ABCDEF', > 'digtype' => 5, > 'keytag' => 123, > 'name' => 'test1dom1.se', > 'ttl' => 43200, > 'type' => 'DS', > 'digestbin' => '' > ); > #error only occurs when next line is commented > #print 'Digest 1: '.$ds1->string."\n"; > > my $ds2 = Net::DNS::RR->new( > 'algorithm' => 3, > 'class' => 'IN', > 'digest' => '1234567890ABCDEF', > 'digtype' => 5, > 'keytag' => 123, > 'name' => 'test1dom1.se', > 'ttl' => 43200, > 'type' => 'DS', > ); > print 'Digest 2: '.$ds2->string."\n"; > > > > > > > > Summary of my perl5 (revision 5 version 8 subversion 7) configuration: > Platform: > osname=linux, osvers=2.6.10, archname=i486-linux-gnu-thread-multi > uname='linux rothera 2.6.10 #1 smp fri may 13 09:24:22 utc 2005 > i686 gnulinux ' > config_args='-Dusethreads -Duselargefiles -Dccflags=-DDEBIAN > -Dcccdlflags=-fPIC -Darchname=i486-linux-gnu -Dprefix=/usr > -Dprivlib=/usr/share/perl/5.8 -Darchlib=/usr/lib/perl/5.8 > -Dvendorprefix=/usr -Dvendorlib=/usr/share/perl5 > -Dvendorarch=/usr/lib/perl5 -Dsiteprefix=/usr/local > -Dsitelib=/usr/local/share/perl/5.8.7 > -Dsitearch=/usr/local/lib/perl/5.8.7 -Dman1dir=/usr/share/man/man1 > -Dman3dir=/usr/share/man/man3 -Dsiteman1dir=/usr/local/man/man1 > -Dsiteman3dir=/usr/local/man/man3 -Dman1ext=1 -Dman3ext=3perl > -Dpager=/usr/bin/sensible-pager -Uafs -Ud_csh -Uusesfio -Uusenm > -Duseshrplib -Dlibperl=libperl.so.5.8.7 -Dd_dosuid -des' > hint=recommended, useposix=true, d_sigaction=define > usethreads=define use5005threads=undef useithreads=define > usemultiplicity=define > useperlio=define d_sfio=undef uselargefiles=define usesocks=undef > use64bitint=undef use64bitall=undef uselongdouble=undef > usemymalloc=n, bincompat5005=undef > Compiler: > cc='cc', ccflags ='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS > -DDEBIAN -fno-strict-aliasing -pipe -I/usr/local/include > -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64', > optimize='-O2', > cppflags='-D_REENTRANT -D_GNU_SOURCE -DTHREADS_HAVE_PIDS -DDEBIAN > -fno-strict-aliasing -pipe -I/usr/local/include' > ccversion='', gccversion='4.0.3 20051204 (prerelease) (Ubuntu > 4.0.2-5ubuntu2)', gccosandvers='' > intsize=4, longsize=4, ptrsize=4, doublesize=8, byteorder=1234 > d_longlong=define, longlongsize=8, d_longdbl=define, > longdblsize=12 > ivtype='long', ivsize=4, nvtype='double', nvsize=8, Off_t='off_t', > lseeksize=8 > alignbytes=4, prototype=define > Linker and Libraries: > ld='cc', ldflags =' -L/usr/local/lib' > libpth=/usr/local/lib /lib /usr/lib > libs=-lgdbm -lgdbm_compat -ldb -ldl -lm -lpthread -lc -lcrypt > perllibs=-ldl -lm -lpthread -lc -lcrypt > libc=/lib/libc-2.3.5.so, so=so, useshrplib=true, > libperl=libperl.so.5.8.7 > gnulibc_version='2.3.5' > Dynamic Linking: > dlsrc=dl_dlopen.xs, dlext=so, d_dlsymun=undef, ccdlflags='-Wl,-E' > cccdlflags='-fPIC', lddlflags='-shared -L/usr/local/lib' > > > Characteristics of this binary (from libperl): > Compile-time options: MULTIPLICITY USE_ITHREADS USE_LARGE_FILES > PERL_IMPLICIT_CONTEXT > Locally applied patches: > SPRINTF0 - fixes for sprintf formatting issues - CVE-2005-3962 > Built under linux > Compiled at Dec 16 2005 07:48:39 > %ENV: > PERLLIB="/home/ulrich/services/SEServ/lib/" > @INC: > /home/ulrich/services/SEServ/lib/ > /etc/perl > /usr/local/lib/perl/5.8.7 > /usr/local/share/perl/5.8.7 > /usr/lib/perl5 > /usr/share/perl5 > /usr/lib/perl/5.8 > /usr/share/perl/5.8 > /usr/local/lib/site_perl > . > -----BEGIN PGP SIGNATURE----- > Version: PGP 8.1 > > iQA/AwUBRx3Fjy9yrDO0wHQwEQIm/QCbBBO3jaKbfrbRnleK8Q4NBCX1/C8AmgKp > 81NayV+OwArH6sj8b6TDnLrI > =lPTZ > -----END PGP SIGNATURE-----
Subject: SV: [rt.cpan.org #30215] Net::DNS::RR::DS->string bubblebabble error
Date: Thu, 1 Nov 2007 14:10:30 +0100
To: <bug-Net-DNS-SEC [...] rt.cpan.org>
From: "Ulrich Wisser" <Ulrich.Wisser [...] iis.se>
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi, luckily I still can reproduce the error. So I will run some more tests and report my results back. /Ulrich -----BEGIN PGP SIGNATURE----- Version: PGP 8.1 iQA/AwUBRynQRi9yrDO0wHQwEQLzBACeIdgcBFS7g077cEFul4HbvYG8rPIAmwZu 4kU6nY3UY0yTmCBrZBgWTROP =mDdd -----END PGP SIGNATURE-----
Subject: RE: [rt.cpan.org #30215] Net::DNS::RR::DS->string bubblebabble error
Date: Mon, 12 Nov 2007 16:08:36 +0100
To: <bug-Net-DNS-SEC [...] rt.cpan.org>
From: "Ulrich Wisser" <Ulrich.Wisser [...] iis.se>
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Show quoted text
>> Hello, >> >> while trying some new code for the .se zone I found an error in the >> Net::DNS::RR::DS package. >> >> When the string method of a Net::DNS:RR::DS object is called, and the >> digestbin is not given the package will enter an endless loop. >> Because AUTOLOAD will fail to load digestbin and will call the >> string method once again for the error message. >>
> >I can't reproduce the error with the piece of code supplied. > >I am puzzled. > >Because the string method uses the rdatastr method of Net::DNS::RR::DS which does not call >the digestbin method.
rdatastr calls babble and babble calls digestbin. I tried on several of our servers and all show the same result. I verified we have Net::DNS 0.53 and Net::DNS::SEC 0.14 installed. Here is the code again but this time it's only the error reproducing part use Net::DNS::RR; my $ds2 = Net::DNS::RR->new( 'algorithm' => 3, 'class' => 'IN', 'digest' => '1234567890ABCDEF', 'digtype' => 5, 'keytag' => 123, 'name' => 'test1dom1.se', 'ttl' => 43200, 'type' => 'DS', ); print 'Digest 2: '.$ds2->string."\n"; Please let me know if I can be of any further assistance. /Ulrich -----BEGIN PGP SIGNATURE----- Version: PGP 8.1 iQA/AwUBRzhsdC9yrDO0wHQwEQIQGgCeKwMpxBkOLcQZG7OZ7ZgJtjhK5ywAnAoB dKC7kOm7N4OTvoACXKaX/vkA =xhLe -----END PGP SIGNATURE-----
Administrative: This was resolved in 0.15