[Pkg-net-snmp-devel] Bug#429162: bulkwalk completely broken in asynchronous mode

John Morrissey jwm at horde.net
Sat Jun 16 02:00:58 UTC 2007


Package: libsnmp-perl
Version: 5.2.3-7
Severity: important
Tags: patch

bulkwalk is completely broken when used in asynchronous mode. The version in
sarge (5.1.2-6.2) works fine, and bulkwalk() returns:

$VAR1 = [
          bless( [
                   bless( [
                            '.1.3.6.1.2.1.1.3',
                            '0',
                            '68110026',
                            'TICKS'
                          ], 'SNMP::Varbind' )
                 ], 'SNMP::VarList' ),
          bless( [
                   bless( [
                            '.1.3.6.1.2.1.2.1',
                            '0',
                            '6',
                            'INTEGER32'
                          ], 'SNMP::Varbind' )
                 ], 'SNMP::VarList' ),
[...]

However, the version in etch (5.2.3-7) returns:

$VAR1 = [
          bless( {
                   'UseLongNames' => 2,
                   'UseEnums' => 0,
                   'UseNumeric' => 1,
                   'BestGuess' => 0,
                   'SessPtr' => bless( do{\(my $o = 136870504)},
                   'SnmpSessionPtr' ),
                   'LocalPort' => 0,
                   'ErrorStr' => '',
                   'UseSprintValue' => 0,
                   'Community' => 'elided',
                   'ErrorNum' => 0,
                   'RetryNoSuch' => 0,
                   'UseEnum' => 0,
                   'Retries' => -1,
                   'RemotePort' => 161,
                   'Version' => '2c',
                   'ErrorInd' => 0,
                   'DestHost' => 'localhost:161',
                   'Timeout' => -1
                 }, 'SNMP::Session' ),
          2,
          16,
          bless( [
                   bless( [
                            'sysUpTime'
                          ], 'SNMP::Varbind' ),
                   bless( [
                            'ifNumber'
                          ], 'SNMP::Varbind' ),
                   bless( [
                            'ifSpeed'
                          ], 'SNMP::Varbind' ),
                   bless( [
                            'ifDescr'
                          ], 'SNMP::Varbind' )
                 ], 'SNMP::VarList' )
        ];

This is apparently because SNMP.xs isn't modifying the Perl stack pointer
correctly, which makes sense because bulkwalk() in the second case is
returning a value suspiciously similar to its arguments.

This upstream bug:

http://sourceforge.net/tracker/index.php?func=detail&aid=1533078&group_id=12694&atid=112694

contains a patch (192507: perlpatch) that makes bulkwalk() work correctly in
asynchronous mode. This also seems to affect 5.3.1-6, currently in unstable.

-- System Information:
Debian Release: 4.0
  APT prefers stable
  APT policy: (500, 'stable')
Architecture: i386 (i686)
Shell:  /bin/sh linked to /bin/bash
Kernel: Linux 2.6.18-4-686
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)

Versions of packages libsnmp-perl depends on:
ii  libsnmp9                5.2.3-7   NET SNMP (Simple Network Managemen
ii  perl                    5.8.8-7   Larry Wall's Practical Extraction 
ii  perl-base [perlapi-5.8. 5.8.8-7   The Pathologically Eclectic Rubbis

libsnmp-perl recommends no packages.

-- no debconf information




More information about the Pkg-net-snmp-devel mailing list