Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 13 Mar 2017 17:02:15 +0000
From:      bugzilla-noreply@freebsd.org
To:        freebsd-bugs@FreeBSD.org
Subject:   [Bug 217763] [patch] [bsnmpd] MIBIF_ALIAS_SIZE is too low breaking ifXTable
Message-ID:  <bug-217763-8@https.bugs.freebsd.org/bugzilla/>

next in thread | raw e-mail | index | archive | help
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D217763

            Bug ID: 217763
           Summary: [patch] [bsnmpd] MIBIF_ALIAS_SIZE is too low breaking
                    ifXTable
           Product: Base System
           Version: 11.0-STABLE
          Hardware: Any
                OS: Any
            Status: New
          Keywords: patch
          Severity: Affects Some People
          Priority: ---
         Component: bin
          Assignee: freebsd-bugs@FreeBSD.org
          Reporter: eugen@freebsd.org
          Keywords: patch

Created attachment 180784
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=3D180784&action=
=3Dedit
make ifAlias dynamic

FreeBSD allows to assign descriptions to network interfaces by means of
ifconfig(8) utility or kernel API utilized by daemons like net/mpd5.
sysctl net.ifdescr_maxlen limits maximum description length to 1024 bytes by
default, including terminating zero byte.

bsnmpd shows these descriptions with ifAlias OIDs in the ifXTable (MIB-II) =
but
has compiled-in limit MIBIF_ALIAS_SIZE equal to 65 bytes. If an interface h=
as
longer description (say, 70 bytes), bsnmpd complains:

SIOCGIFDESCR (ng7): too long (70)

And no description is returned to interface's ifAlias OID.
Nevertheless, bsnmpd allocates a buffer of MIBIF_ALIAS_SIZE bytes to every
network interface, is it used or not.

Attached patch solves these problems and little more:

- bsnmpd's network interface buffers for description/ifAlias now have dynam=
ic
size and allocate exact number of bytes; no extra memory allocated for
interfaces having no description;

- sysctl net.ifdescr_maxlen is used as limit instead of compiled-in
MIBIF_ALIAS_SIZE; changes to this sysctl updated without restart of bsnmpd;

- no more strlen() calls on every SNMP request for an ifAlias: we calculate
actual size of buffer once, store it and use when needed;

- corresponding data moved from struct mibif_private to struct mibif just as
suggested by a comment: /* this should be made public */.

--=20
You are receiving this mail because:
You are the assignee for the bug.=



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-217763-8>