History log of /freebsd-10-stable/contrib/bsnmp/
Revision Date Author Comments
(<<< Hide modified files)
(Show modified files >>>)
360301 25-Apr-2020 dim

MFC r354834 (by jhibbits):

bsnmp: Fix operator precedence in error check in table_check_response

Summary:
The ?: operator has a lower precedence than == and &&, so the result will always
be recorded as true. Found by gcc8.

Reviewed by: ngie, ae
Differential Revision: https://reviews.freebsd.org/D22427

338311 25-Aug-2018 eugen

MFC 338013: bsnmpd(8): fix and optimize interface description processing

* correctly prepare a buffer to obtain interface description from a kernel
and truncate long description instead of dropping it altogether and
spamming logs;
* skip calling strlen() for each description and each SNMP request
for MIB-II/ifXTable's ifAlias.
* teach bsnmpd to allocate memory dynamically for interface descriptions
to decrease memory usage for common case and not to break
if long description occurs;

PR: 217763
Reviewed by: harti and others
Differential Revision: https://reviews.freebsd.org/D16459

316044 27-Mar-2017 ngie

MFC r315641,r315642:

r315641:

bsnmp: don't leak snmp_client.fd in open_client_udp(..) on connect(2) failure

r315642:

bsnmp: explicitly test the return value for open_client_{local,udp} in snmp_open(..)

open_client_* returns -1 on failure; 0 on success. Ensure that the return value is
0 -- otherwise exit snmp_open(..).

315612 20-Mar-2017 ngie

MFC r315206:

bsnmpd: fix segfault when trans_insert_port(..) is called with multiple
out of order addresses

Move `port->transport` initialization before the TAILQ_FOREACH(..) loop
to ensure that the value is properly initialized before it's inserted
into the TAILQ.

PR: 217760

313222 04-Feb-2017 ngie

MFC r311394:

op_usm_users: don't deref uusers if it's NULL when SETting the value

Add an XXX comment to note that the conditional seems suspect given
how it's handled elsewhere in the SNMP_OP_SET case.

CID: 1008573

313201 04-Feb-2017 ngie

MFC r311263:

Use calloc instead of malloc with buffers in snmp_{recv,send}_packet

This doesn't fix the issue noted in the PR, but at the very least it
cleans up the error so it looks a bit more sane, and in the event
that bsnmp did wander off into the weeds, the likelihood of it
crashing with more sensible output is greater, in my opinion

MFC counter set high so I have enough time to resolve the real
underlying bug in bsnmpwalk

PR: 215721

312516 20-Jan-2017 ngie

MFC r312331:
r312331 (by glebius):

Fix regression from r310655, which broke operation of bsnmpd if it is bound
to a non-wildcard address. As documented in ip(4), doing sendmsg(2) with
IP_SENDSRCADDR on a socket that is bound to non-wildcard address is
completely different to using this control message on a wildcard one.

A fix is to add a bool to mark whether we did setsockopt(IP_RECVDSTADDR)
on the socket, and use IP_SENDSRCADDR control message only if we did.

While here, garbage collect absolutely useless udp_recv() function that
establishes some structures on stack to never use them later.

312266 16-Jan-2017 ngie

MFC r310656,r311221:

r310656:

style(9): sort alignment in udp_recv(..)

r311221:

Initialize msg.msg_flags to 0

This mutes a valid coverity warning about it being uninitialized
when passed in to sendmsg(2).

CID: 1368202

312265 16-Jan-2017 ngie

MFC r310655:

Fix bsnmpd sending/receiving with multi-homed configurations or INADDR_ANY used
as the listening address in snmpd_input(..)

Stash the IPv4 address of the receiver via the recv(..) callback and use it in
the send(..) callback for the transport by specifying IP_SENDSRCADDR for the
control message type.

Add sendmsg logic to the UDP transport's send(..) callback and use the
respective send(..) callback for the transport instead of calling sendto in
snmpd_input(..).

Obtained from: Isilon OneFS (^/onefs/branches/BR_8_0_0_DEV@r507595)

312261 16-Jan-2017 ngie

MFC r311742:

Add a REVISION section to track changes for the BEGEMOT-IP-MIB MIB file

There haven't been any changes to the MIB definition, so the REVISION
remains static at the version it was imported at

312255 16-Jan-2017 ngie

MFC r311759,r311760:

r311759:

Add a REVISION section to track changes for the FOKUS-MIB MIB file

There haven't been any changes to the MIB definition, so the REVISION
remains static at the version it was imported at

r311760:

Add a REVISION section to track changes for the BEGEMOT-MIB MIB file

There haven't been any changes to the MIB definition, so the REVISION
remains static at the version it was imported at

312098 14-Jan-2017 ngie

MFC r311750,r311754,r311757:

r311750:

Check result from smiGetFirstNode and smiGetNodeByOID

This avoids a segfault with malformed or unanticipated files,
like IPV6-TC.txt (a file containing just TEXTUAL-CONVENTIONS).

Found with: gensnmpdef /usr/local/share/snmp/mibs/IPV6-TC.txt

r311754:

Use calloc instead of malloc + memset(.., 0, ..)

r311757:

Similar to r311750, check for the result from smiGetModule to avoid a segfault
when dereferencing a NULL pointer later on.

Choose to just check for the NULL pointer in the next for-loop for now to fix
the issue with a minimal amount of code churn

sys/queue.h use here would make more sense than using a static table

312089 14-Jan-2017 ngie

MFC r310950:

MIB-II: use strlcpy when copying interface names to .ifr_name

.ifra_name is assumed to be NUL terminated; using strlcpy(3)
ensures that it's indeed NUL terminated whereas strncpy does
not.

Tested and verified as follows with a combination of ifconfig,
snmpget, and snmpset:

% ifconfig create lo1 127.0.0.2/8
% SNMPARGS="-v 3 -n '' -u bsnmp -A bsnmptest -l authPriv -a sha -x des -X bsnmptest localhost"
% snmpget $SNMPARGS IF-MIB::ifAdminStatus.4
IF-MIB::ifAdminStatus.4 = INTEGER: up(1)
% snmpset $SNMPARGS IF-MIB::ifAdminStatus.4 i 2
IF-MIB::ifAdminStatus.4 = INTEGER: down(2)
% snmpget $SNMPARGS IF-MIB::ifAdminStatus.4
IF-MIB::ifAdminStatus.4 = INTEGER: down(2)
% snmpset $SNMPARGS IF-MIB::ifAdminStatus.4 i 1
IF-MIB::ifAdminStatus.4 = INTEGER: up(1)
% snmpget $SNMPARGS IF-MIB::ifAdminStatus.4
IF-MIB::ifAdminStatus.4 = INTEGER: up(1)

CID: 1009652-1009656, 1349850

312058 13-Jan-2017 ngie

MFC r310586,r310587,r310588,r311381:

r310586:

Refactor transport sources a bit to facilitate changes coming down pipeline

Add recv callback to transport layer to better facilitate code reuse and
readability and for symmetry with send callback. Move recv_dgram and
recv_stream to udp_recv and lsock_recv, respectively, and make the
beforementioned functions recv callbacks for the udp and lsock transports,
respectively.

Consolidate the check_priv* functions in their relevant trans*.c source to
limit scope/use.

Note: this code is roughly based content from the submitter, although this
was modified to be more of a direct move from snmpd/main.c to the trans_*.c
sources, and to reduce unnecessary static function declarations.

r310587:

Fix definition for recv_dgram(..); it should be "ssize_t", not "int"

I'm not sure why this wasn't flagged as an issue by the compiler, yet

r310588:

Fix return type for `ret` (recv callback) and sort variables by alignment

Again, for reasons I don't yet understand, this is not being flagged by the
compiler. Unlike the issue addressed in r310587, this problem existed prior
to r310586

r311381:

lsock_init_port: address issues with initializing sockaddr_un object

- Use strlcpy to ensure p->name doesn't overflow sa.sun_path [*].
- Use SUN_LEN(..) instead of spelling out calculation longhand (inspired
by comment by jmallett).

Tested with: dgram and stream support with both bsnmpwalk and snmpwalk

CID: 1006825

312054 13-Jan-2017 ngie

MFC r311378:

lm_load: fix string copying issues

- Ensure `section` doesn't overrun section by using strlcpy instead of
strcpy [*].
- Use strdup instead of malloc + strcpy (this wasn't flagged by Coverity,
but is an opportunistic change).

CID: 1006826 [*]

312052 13-Jan-2017 ngie

MFC r311390:

snmp_table_fetch_async: don't leak `work` if snmp_pdu_send(..) fails

CID: 1017276

312047 13-Jan-2017 ngie

MFC r310729:

Prevent improper memory accesses after calling snmp_pdu_free and snmp_value_free

snmp_pdu_free: set pdu->nbindings to 0 to limit the damage that
could happen if a pdu was reused after calling the function, and
as both stack and heap allocation types are used in contrib/bsnmp
and usr.sbin/bsnmpd.

snmp_value_free: NULL out value->v.octetstring.octets after calling
free on it to prevent a double-free from occurring.

312045 13-Jan-2017 ngie

MFC r311733:

Use nitems(mib) instead of hardcoding mib's length when calling sysctl(3)

312042 13-Jan-2017 ngie

MFC r311282:

snmp_mibII(3) requires net/if.h and net/if_mib.h

Document that requirement

311725 09-Jan-2017 ngie

MFC r311505:

Remove unnecessary __unused attribute attached to `ctx` in op_begemot_mibII(..)

311723 09-Jan-2017 ngie

MFC r311384:

op_usm_users: fix indentation in SNMP_OP_SET block

311721 09-Jan-2017 ngie

MFC r311382:

Use calloc instead of malloc + memset(.., 0, ..)

311603 07-Jan-2017 ngie

MFC r310501:

Be more strict about IpAddress type in snmp_value_parse(..)

- Use inet_pton with AF_INET instead of doing longhand with sscanf.
- Use gethostbyname2 with AF_INET to ensure that the hostname isn't
accidentally parsed with another address family, e.g. AF_INET6.

NB: IpAddress per RFC-2578 is IPv4 only. Work is in progress to add
the InetAddress type and friends documented in RFC-4001 and
elsewhere (which supports IPv4, IPv6, and more).

311598 07-Jan-2017 ngie

MFC r310952:

MIB-II: use strlcpy instead of strcpy when copying {descr,name}

This is of course to avoid buffer overruns

The remaining strcpy instance in the module needs to be audited for
correctness

CID: 1006827, 1006828

311597 07-Jan-2017 ngie

MFC r310957,r310958,r310960:

r310957:

Use strlcpy when copying `com` to pdu->community to avoid potential
buffer overruns

CID: 1006823, 1006824

r310958:

Initialize ret to SNMPD_INPUT_OK at the top of snmp_input_start(..) to
avoid returning an uninitialized value

There are some really complicated, snakey if-statements combined with
switch statements that could result in an invalid value being returned
as `ret`

CID: 1006551

r310960:

Similar to r310954, set .len to 0 on malloc failure and to `len` only
on success

311593 07-Jan-2017 ngie

MFC r310931,r310942,r310988:

r310931:

Use strdup in snmp_parse_server(..) when possible instead of malloc+strcpy

This simplifies the code and mutes a Coverity warning about sc->cport being
improperly allocated

CID: 1018247

r310942:

Unbreak the build by passing the string to strdup, not its length

Pointyhat to: ngie

r310988:

snmp_discover_engine: fix up req/resp (PDU object) handling a bit

- Call snmp_pdu_free on req and resp when done with the objects
- Call snmp_pdu_free on req before calling snmp_pdu_create on it
again

311468 06-Jan-2017 ngie

MFstable/11 r311467:

MFC r310873:

Guard against use-after-free after calling mibif_free(..)

Set variables to NULL after calling free.

Also, remove unnecessary if (x != NULL) checks before calling free(x)

311219 04-Jan-2017 ngie

MFstable/11 r311217:

MFC r311003:

Fix spelling errors; bump .Dd for the change

311216 04-Jan-2017 ngie

MFstable/11 r311213:

MFC r311001:

Bump .Dd for the spelling and .Nm updates

311208 04-Jan-2017 ngie

MFstable/11 r311207:

MFC r310099,r311000,r311002:

r311000:

Fix spelling errors

r311002:

Install bsnmpclient(3) as snmp_client_{init,set_host,set_port}(3)

311139 02-Jan-2017 ngie

MFstable/11 r311107:

MFC r310865:

Fix whitespace in a comment and fixing a spelling error in a comment

310993 01-Jan-2017 ngie

MFstable/11 r310992:

MFC r310763:

Use uint32_t instead of u_int32_t for or_last_change and services in "struct systemg"

This is being done to match "struct systemg" in snmpmod(3)

No functional change

310991 01-Jan-2017 ngie

MFstable/11 r310990:

MFC r310498,r310591:

r310498:

Allow SNMPv3 authNoPriv and noAuthNoPriv protocols to discover snmpEngineTime
as discussed in RFC-5343

This fixes interoperability with net-snmp.

Tested with the following invocations of snmpwalk (from net-snmp):

- noAuthNoPriv:

% snmpwalk -v 3 -n '' -u public localhost snmpEngineTime

- authNoPriv:

% snmpwalk -v 3 -n '' -u bsnmp -A bsnmptest -l authNoPriv -a sha localhost \
localhost snmpEngineTime

- authPriv:

% snmpwalk -v 3 -n '' -u bsnmp -A bsnmptest -l authPriv -a sha -x des \
-X bsnmptest localhost snmpEngineTime

Obtained from: Isilon OneFS (5ec6d772cacbc, with minor tweaks)

r310591:

Update engine time using update_snmpd_engine_time(..)

310910 31-Dec-2016 ngie

MFstable/11 r310909:

MFC r310500,r310660:

r310500:

Minor style(9) fixes

- Trailing whitespace cleanup
- Sort variables in snmp_dialog(..) by alignment

No functional change

r310660:

style(9): fix whitespace in pdu_encode_secparams(..)

310906 31-Dec-2016 ngie

MFstable/11 r310904:

MFC r310662,r310663:

r310662:

style(9): snmp_send_packet(..): fix whitespace

r310663:

style(9): ip_get(..): clean up whitespace

310903 31-Dec-2016 ngie

MFstable/11 r310901:

MFC r310648:

style(9): clean up trailing whitespace


gensnmpdef/gensnmpdef.1
gensnmpdef/gensnmpdef.c
gensnmptree/gensnmptree.1
gensnmptree/gensnmptree.c
lib/asn1.3
lib/asn1.c
lib/asn1.h
lib/bsnmpagent.3
lib/bsnmpclient.3
lib/bsnmplib.3
lib/snmp.c
lib/snmp.h
lib/snmpagent.c
lib/snmpagent.h
lib/snmpclient.c
lib/snmpclient.h
lib/snmpcrypto.c
lib/snmppriv.h
lib/support.c
lib/support.h
snmp_mibII/mibII.c
snmp_mibII/mibII.h
snmp_mibII/mibII_begemot.c
snmp_mibII/mibII_ifmib.c
snmp_mibII/mibII_ifstack.c
snmp_mibII/mibII_interfaces.c
snmp_mibII/mibII_ip.c
snmp_mibII/mibII_ipaddr.c
snmp_mibII/mibII_nettomedia.c
snmp_mibII/mibII_rcvaddr.c
snmp_mibII/mibII_route.c
snmp_mibII/mibII_tcp.c
snmp_mibII/mibII_tree.def
snmp_mibII/mibII_udp.c
snmp_mibII/snmp_mibII.3
snmp_mibII/snmp_mibII.h
snmp_ntp/NTP-MIB.txt
snmp_ntp/NTP-PROXY-MIB.txt
snmp_target/snmp_target.3
snmp_usm/snmp_usm.3
snmp_usm/usm_snmp.c
snmp_vacm/snmp_vacm.3
snmp_vacm/vacm_snmp.c
snmpd/BEGEMOT-MIB.txt
snmpd/BEGEMOT-SNMPD.txt
snmpd/FOKUS-MIB.txt
snmpd/action.c
snmpd/config.c
snmpd/export.c
snmpd/main.c
snmpd/snmpd.config
snmpd/snmpd.h
snmpd/snmpd.sh
snmpd/snmpmod.3
snmpd/snmpmod.h
snmpd/trans_lsock.c
snmpd/trans_lsock.h
snmpd/trans_udp.c
snmpd/trans_udp.h
snmpd/trap.c
snmpd/tree.def
/freebsd-10-stable/usr.sbin/bsnmpd/modules/snmp_atm/BEGEMOT-ATM-FREEBSD-MIB.txt
/freebsd-10-stable/usr.sbin/bsnmpd/modules/snmp_atm/atm_sys.c
/freebsd-10-stable/usr.sbin/bsnmpd/modules/snmp_bridge/BEGEMOT-BRIDGE-MIB.txt
/freebsd-10-stable/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_addrs.c
/freebsd-10-stable/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_if.c
/freebsd-10-stable/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_port.c
/freebsd-10-stable/usr.sbin/bsnmpd/modules/snmp_bridge/bridge_sys.c
/freebsd-10-stable/usr.sbin/bsnmpd/modules/snmp_bridge/snmp_bridge.3
/freebsd-10-stable/usr.sbin/bsnmpd/modules/snmp_hostres/snmp_hostres.3
/freebsd-10-stable/usr.sbin/bsnmpd/modules/snmp_netgraph/snmp_netgraph.c
/freebsd-10-stable/usr.sbin/bsnmpd/modules/snmp_pf/BEGEMOT-PF-MIB.txt
/freebsd-10-stable/usr.sbin/bsnmpd/modules/snmp_pf/Makefile
/freebsd-10-stable/usr.sbin/bsnmpd/modules/snmp_pf/pf_snmp.c
/freebsd-10-stable/usr.sbin/bsnmpd/modules/snmp_target/Makefile
/freebsd-10-stable/usr.sbin/bsnmpd/modules/snmp_usm/Makefile
/freebsd-10-stable/usr.sbin/bsnmpd/modules/snmp_vacm/Makefile
/freebsd-10-stable/usr.sbin/bsnmpd/modules/snmp_wlan/wlan_snmp.c
/freebsd-10-stable/usr.sbin/bsnmpd/modules/snmp_wlan/wlan_snmp.h
/freebsd-10-stable/usr.sbin/bsnmpd/modules/snmp_wlan/wlan_sys.c
/freebsd-10-stable/usr.sbin/bsnmpd/tools/bsnmptools/bsnmpget.c
/freebsd-10-stable/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmpimport.c
/freebsd-10-stable/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmpmap.c
/freebsd-10-stable/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmptc.c
/freebsd-10-stable/usr.sbin/bsnmpd/tools/libbsnmptools/bsnmptools.c
310878 31-Dec-2016 ngie

MFstable/11 r310877:

MFC r310455:

Clarify failure in snmp_output(..) with call to snmp_pdu_decode

- Explicitly test snmp_pdu_encode against SNMP_CODE_OK instead of assuming
any non-zero value is bad.
- Print out the code before calling abort() to give the end-user something
actionable to debug without having to recompile the binary, since the
core might not have these details.

310733 29-Dec-2016 ngie

MFstable/11 r310732:

MFC r310574:

Fix style(9)

- Sort #includes
- Delete trailing whitespace

No functional change

310731 29-Dec-2016 ngie

MFstable/11 r310730:

MFC r310592:

style(9): fix trailing whitespace

310673 28-Dec-2016 ngie

MFstable/11 r310672:

MFC r310499:

Sort #includes

No functional change

310671 28-Dec-2016 ngie

MFstable/11 r310670:

MFC r310503:

style(9): delete stray trailing whitespace after break statement

310572 26-Dec-2016 ngie

MFstable/11 r310571:

MFC r310459:

Sort #includes per style(9)

No functional change

310566 26-Dec-2016 ngie

MFstable/11 r310565:

MFC r310202:

Clean up trailing and leading whitespace

Fix variable type alignment in snmp_dialog(..)

301667 08-Jun-2016 ngie

MFC r299834:

Fix .Dd

Today is the 14th, not the 10th of May

301663 08-Jun-2016 ngie

MFC r294507,r294567,r299466:

r294507 (by harti):

Fill the ifAlias leaf of the ifXTable with the interface description
if there is one available and it fits into the maximum size (64 characters).

r294567 (by bz):

Change the variable to a #define in order to make gcc happy which
otherwise will complain about "variably modified 'alias' at file scope".
Unbreaks the build on gcc platforms.

r299466 (by cem):

bsnmpd: Fix size of trapsink::comm to match other community arrays

This fixes a number of possible strcpy() buffer overruns between the various
community strings in trap.c.

CIDs: 1006820, 1006821, 1006822

301661 08-Jun-2016 ngie

MFC r256678,r256680,r260986,r272878,r286402:

r256678 (by syrinx):

Fix SNMP Error response PDUs and properly encode them when using v3 auth/encryption.

r256680 (by syrinx):

Fix the -Wconversion warnings produced when compiling the SNMP agent.

r260986 (by harti):

Fix a problem with OBJECT IDENTIFIER encoding: need to check the
second subid to be less than 40, not the first when the first
subid is 0 or 1.

r272878 (by syrinx):

Fix a bug in decoding string indexes in snmp_target(3), thus causing
bsnmpd(1) to not send v3 notifications properly; while here add two
missing return statements which could lead to abort() in case of a
rollback

r286402 (by araujo):

Fix variable 'old' is used uninitialized whenever '&&' condition is false.
Spotted by clang.

301610 08-Jun-2016 ngie

MFC r299833:

Fix fully canonicalized example for `myvariable.27...`

`6` doesn't occur in the OID; it was spurious

Bump .Dd for the change

300561 24-May-2016 ngie

MFC r299465,r299807,r299808,r299817,r299831,r299832,r300167:

r299465 (by cem):

bsnmp: Don't overrun privkey buffer by copying wrong size

The 'priv_key' array is SNMP_PRIV_KEY_SIZ bytes, not SNMP_AUTH_KEY_SIZ.

CIDs: 1008326, 1009675

r299807:

Replace QUADFMT with %ju and QUADXFMT with %jx and cast values with uintmax_t

This will cure some -Wformat warnings

r299808:

Use sizeof(..)s for the destination buffers instead of hardcoded values corresponding
to the destination buffer sizes

r299817:

Use SNMPD_INPUT_FAILED instead of SNMP_CODE_FAILED

SNMPD_INPUT_FAILED is `enum snmpd_input_err` type (which matches the return
code from the function). SNMP_CODE_FAILED is `enum snmp_code` type.

r299831:

Remove NO_WERROR and add WARNS?= 6

This now compiles cleanly on all architectures

Tested with: clang 3.8, gcc 4.2.1, gcc 4.5, make tinderbox

r299832:

Remove trailing whitespace in license tort

r300167 (by glebius):

Revert r299830, it has couple of fatal errors.

The CMSG_ family of macros take care of alignment, so we don't need r299830
at all, even if it was correct. Put NO_WCAST_ALIGN into Makefile.

Together with: peter

299638 13-May-2016 ngie

MFC r298462:

Return `ret` in op_ifentry(..) to mute a -Wunused-but-set-variable warning

This will also now detect error conditions with
value->var.subs[sub - 1] == LEAF_ifPhysAddress where `string_get(..)`
could fail if iifp->physaddr and/or iifp->physaddrlen were deemed
invalid.

CID: 1006551

299022 04-May-2016 ngie

MFC r298450:

Simplify always evaluated branch (`e != NULL`)

- xalloc(..) ensures that e will be non-null via malloc + err.
- `e` is already dereferenced above, so logically it's impossible
to hit the lower test without crashing if it was indeed NULL.

CID: 1007408

299018 04-May-2016 ngie

MFC r298448,r298464:

r298448:

Don't leak `string` in parse_define(..) when a macro has been found
and the parser token != TOK_ASSIGN

CID: 1007187, 1007188
Obtained from: Isilon OneFS (part of r445479)

r298464:

Use `sizeof(*uuser)` instead of `sizeof(struct usm_user)` for consistency with
the rest of the users in the file

No functional change

295386 07-Feb-2016 bz

MFC r295202:

Try to fix a bug introduced in r228623 (head).
We started to copy the ifa_msghdr as otherwise platforms with strict
alignment would break. It is unclear to me if there's also a problem with
access to the address list following the structure.
However we never copied the address list after the structure and thus are
pointing at random memory. For now just use a pointer to the original
memory for accessing the address list making it at least work on
platforms with weak memory access.

PR: 195445
Reported by: wolfgang lyxys.ka.sub.org
Tested by: wolfgang lyxys.ka.sub.org (x86)

Approved by: re (marius)

293141 04-Jan-2016 ngie

MFC r292815:

Staticize several variables that are used exclusively in bsnmpd/main.c and
bsnmpd/trap.c

This fixes several -Wmissing-variable-declaration warnings noted by clang

292998 31-Dec-2015 ngie

MFC r292710:

Remove unused function `act_getkernstring`

This fixes a clang -Wunused warning

Differential Revision: https://reviews.freebsd.org/D4697
Reported by: Jenkins
Reviewed by: araujo, bapt
Sponsored by: EMC / Isilon Storage Division

276677 05-Jan-2015 ngie

MFC r276319:

Fix the function signatures when MK_CRYPT == no for snmp_get_local_keys and
snmp_passwd_to_keys

Reported by: Beeblebrox <zaphod@berentweb.com>

260638 14-Jan-2014 delphij

MFC r260636:

Fix bsnmpd remote denial of service vulnerability.

Reported by: dinoex
Submitted by: harti
Security: FreeBSD-SA-14:01.bsnmpd
Security: CVE-2014-1452

256281 10-Oct-2013 gjb

Copy head (r256279) to stable/10 as part of the 10.0-RELEASE cycle.

Approved by: re (implicit)
Sponsored by: The FreeBSD Foundation


250380 08-May-2013 trociny

Register OID for HAST module.

MFC after: 2 weeks


249896 25-Apr-2013 glebius

Restore the ipNetToMedia MIB, that was broken with new ARP commit
in the r186119.

Submitted by: Konstantin Kukushkin <dark rambler-co.ru>


245952 26-Jan-2013 pfg

Clean some 'svn:executable' properties in the tree.

Submitted by: Christoph Mallon
MFC after: 3 days


241685 18-Oct-2012 glebius

Looks like support.h is really not needed here.


241656 18-Oct-2012 emax

put another bandaid on the build until i figure out bsnmp headers


241654 17-Oct-2012 emax

fix build

MFC after: 1 week


240734 20-Sep-2012 glebius

Re-do r240271:
- Set IP_RECVDSTADDR sockopt on the socket only in case if
it is INADDR_ANY bound.
- Supply IP_SENDSRCADDR control message only if we did receive
IP_RECVDSTADDR control message.

This fixes operation of snmpd bound to a specific local IP address.

PR: bin/171279


240271 09-Sep-2012 glebius

For UDP transport set IP_RECVDSTADDR sockopt on the socket, and provide
IP_SENDSRCADDR control with datagram message we reply with. This makes
bsnmpd reply from exactly same address that request was sent to, thus
successfully bypassing stateful firewalls or other kinds of strict checking.

PR: bin/171279


240234 08-Sep-2012 glebius

The first part of check_priv() function, that attempts to obtain creds
from the control message, actually never worked. This means check_priv()
didn't work for local dgram sockets.

The SCM_CREDS control messages is received only in two cases:

1) If we did setsockopt(LOCAL_CREDS) on our socket, and in this case
the message is struct sockcred.
2) If sender did supplied SCM_CREDS control message in his sendmsg()
syscall. In this case the message is struct cmsgcred.

We can't rely on 2), so we will use 1) for dgram sockets. For stream
sockets it is more reliable to obtain accept-time credentials, since
SCM_CREDS control message is attached only on first read. Thus:

o Do setsockopt(LOCAL_CREDS) on local dgram sockets.
o Split check_priv() into check_priv_stream() and check_priv_dgram(),
and call them from recv_stream() and recv_dgram() respectively.
o Don't provide space for SCM_CREDS control message in recv_stream().
o Provide space for SCM_CREDS control message in recv_dgram(), but there
is no need to initialize anything in it.
o In recv_dgram() do not blindly expect that first message is SCM_CREDS,
instead use correct search cycle through control messages.


240191 07-Sep-2012 kevlo

Fully initialize the stack-allocated "struct sockaddr_in sa" structure.


237194 17-Jun-2012 joel

Remove end of line whitespace.


237193 17-Jun-2012 joel

Minor mdoc fixes.


236693 06-Jun-2012 emax

Count both IPv4 and IPv6 TCP connections in tcpCurrEstab

Timeout from: current, syrinx
MFC after: 1 week


235286 11-May-2012 gjb

General mdoc(7) and typo fixes.

PR: 167734
Submitted by: Nobuyuki Koganemaru (kogane!jp.freebsd.org)
MFC after: 3 days


233128 18-Mar-2012 harti

memset() wants the size of the structure to clear, not the size
of the pointer to it.

Submitted by: Pawel Worach


228623 17-Dec-2011 bz

Adter r228571 unbreak architectures with strict alignment rules
by copying rather than casting.


228411 11-Dec-2011 trociny

Include sys/queue.h: snmpmod.h uses TAILQ.

PR: bin/153153
MFC after: 2 weeks


224584 01-Aug-2011 uqs

Fix broken mdoc.

Found by: manlint
Approved by: re (kib)


221373 03-May-2011 ru

Properly detect interface's state in the LINK_STATE_UNKNOWN case.

MFC after: 1 week


220882 20-Apr-2011 ru

Don't spam syslog with "inet_ntop(): Address family not supported
by protocol family" when processing requests received from the
UNIX domain socket.

MFC after: 3 days


218225 03-Feb-2011 harti

Bring the list of OIDs up-to-date to prevent conflicts.


216605 20-Dec-2010 syrinx

Unbreak the build by temprorarily not using include directives in
bsnmpd(1)' def files, until bsd.snmpmod.mk & Makefiles are fixed to
pass proper include path flags to gensnmptree.


216594 20-Dec-2010 syrinx

Bring in a SNMP module that allows configuration of SNMPv3 Notification targets.

Sponsored by: The FreeBSD Foundation
Reviewed by: philip
Approved by: philip


216482 16-Dec-2010 syrinx

Silence the compiler warnings in libbsnmp by removing several (now)
unsed parameters.

Sponsored by: The FreeBSD Foundation
Reviewed by: philip@


216299 08-Dec-2010 syrinx

Add a forgotten file from r216294 and unbreak the build.

Sponsored by: The FreeBSD Foundation
Reviewed by: philip@ (mostly)
Approved by: philip@


216294 08-Dec-2010 syrinx

In bsnmpd(1) add support for SNMPv3 message processing model, including message authentication, packet encryption & view-based access control (RFC 3412, 3414, 3415).

Sponsored by: The FreeBSD Foundation
Reviewed by: philip@ (mostly)
Approved by: philip@


214237 23-Oct-2010 uqs

Remove mention of non-existant -o flag for debugging options.

MFC after: 3 days


214054 19-Oct-2010 uqs

mdoc: drop even more redundant .Pp calls

No change in rendered output, less mandoc lint warnings.

Tool provided by: Nobuyuki Koganemaru n-kogane at syd.odn.ne.jp


211404 16-Aug-2010 joel

Fix two minor typos.


211402 16-Aug-2010 uqs

Bump document date after content changes.

Pointy hat to: uqs


211401 16-Aug-2010 uqs

Wordsmithing of bsnmpd.1

PR: docs/149157
Submitted by: Warren Block <wblock@wonkity.com>
MFC after: 1 week


210946 06-Aug-2010 yongari

Fix a typo introduced in r210936 which broke build.


210936 06-Aug-2010 jhb

Ethernet vlan(4) interfaces have valid Ethernet link layer addresses but
use a different interface type (IFT_L2VLAN vs IFT_ETHER). Treat IFT_L2VLAN
interfaces like IFT_ETHER interfaces when handling link layer addresses.

Reviewed by: syrinx (bsnmpd)
MFC after: 1 week


208483 24-May-2010 uqs

mdoc: consistently spell our email addresses <foo@FreeBSD.org>

Reviewed by: ru
Approved by: harti


205729 27-Mar-2010 antoine

(S)LIST_HEAD_INITIALIZER takes a (S)LIST_HEAD as an argument.
Fix some wrong usages.
Note: this does not affect generated binaries as this argument is not used.

Approved by: harti@


205078 12-Mar-2010 uqs

Fix typo in macro name and macro usage.

Found by: make manlint
Reviewed by: ru
Approved by: harti, philip (mentor)


200063 03-Dec-2009 syrinx

Fix a problem with high CPU consumption (up to 30%) by bsnmpd on a loaded system.
Instead of constantly calling the mibII_idle function when the server is not busy
call the function only once every 10 seconds to avoid bsnmpd constantly doing
gettimeofday syscalls. Make the idle polling interval confugurable via
begemotIfDataPoll.

Reported and tested by: misho (at) aitbg (dot) com
Oked by: harti
MFC after: 1 week


188760 18-Feb-2009 imp

Add an extra (void *) cast. The struct if_msghdr has an 8 byte
alignment requirement, while rt_msghdr has a 4 byte alignment
requirement. The root cause is that if_msghdr has an struct if_data
which has an 8-byte alignment requirement due to a time_t that's
embedded in it. On MIPS, time_t is a 64-bit number, so must be 64-bit
aligned.

Since we don't access ifm_data.ifi_epoch, a simple cast is all that's
necessary here. It is likely the case that ifi_epoch should *NOT* be
a time_t because it is an uptime (time delta) an not an absolute time
since 1970. u_long is likely sufficient there since that gives an
uptime of 136 years will suffice for the foreseeable future.


186119 15-Dec-2008 qingli

This main goals of this project are:
1. separating L2 tables (ARP, NDP) from the L3 routing tables
2. removing as much locking dependencies among these layers as
possible to allow for some parallelism in the search operations
3. simplify the logic in the routing code,

The most notable end result is the obsolescent of the route
cloning (RTF_CLONING) concept, which translated into code reduction
in both IPv4 ARP and IPv6 NDP related modules, and size reduction in
struct rtentry{}. The change in design obsoletes the semantics of
RTF_CLONING, RTF_WASCLONE and RTF_LLINFO routing flags. The userland
applications such as "arp" and "ndp" have been modified to reflect
those changes. The output from "netstat -r" shows only the routing
entries.

Quite a few developers have contributed to this project in the
past: Glebius Smirnoff, Luigi Rizzo, Alessandro Cerri, and
Andre Oppermann. And most recently:

- Kip Macy revised the locking code completely, thus completing
the last piece of the puzzle, Kip has also been conducting
active functional testing
- Sam Leffler has helped me improving/refactoring the code, and
provided valuable reviews
- Julian Elischer setup the perforce tree for me and has helped
me maintaining that branch before the svn conversion


176893 07-Mar-2008 syrinx

This commit was generated by cvs2svn to compensate for changes in r176892,
which included commits to RCS files with non-trunk default branches.


163821 31-Oct-2006 harti

This commit was generated by cvs2svn to compensate for changes in r163820,
which included commits to RCS files with non-trunk default branches.


163800 30-Oct-2006 harti

This commit was generated by cvs2svn to compensate for changes in r163799,
which included commits to RCS files with non-trunk default branches.


159064 30-May-2006 harti

This commit was generated by cvs2svn to compensate for changes in r159063,
which included commits to RCS files with non-trunk default branches.


156677 13-Mar-2006 harti

Don't import tree.h from the distribution - we have our own one in sys.


156067 27-Feb-2006 harti

This commit was generated by cvs2svn to compensate for changes in r156066,
which included commits to RCS files with non-trunk default branches.


155603 13-Feb-2006 harti

This commit was generated by cvs2svn to compensate for changes in r155602,
which included commits to RCS files with non-trunk default branches.


155507 10-Feb-2006 harti

This commit was generated by cvs2svn to compensate for changes in r155506,
which included commits to RCS files with non-trunk default branches.


155430 07-Feb-2006 harti

This commit was generated by cvs2svn to compensate for changes in r155429,
which included commits to RCS files with non-trunk default branches.


155095 31-Jan-2006 harti

This commit was generated by cvs2svn to compensate for changes in r155094,
which included commits to RCS files with non-trunk default branches.


154185 10-Jan-2006 harti

This commit was generated by cvs2svn to compensate for changes in r154184,
which included commits to RCS files with non-trunk default branches.


154183 10-Jan-2006 harti

This commit was generated by cvs2svn to compensate for changes in r154182,
which included commits to RCS files with non-trunk default branches.


154181 10-Jan-2006 harti

This commit was generated by cvs2svn to compensate for changes in r154180,
which included commits to RCS files with non-trunk default branches.


154179 10-Jan-2006 harti

This commit was generated by cvs2svn to compensate for changes in r154178,
which included commits to RCS files with non-trunk default branches.


151971 02-Nov-2005 harti

This commit was generated by cvs2svn to compensate for changes in r151970,
which included commits to RCS files with non-trunk default branches.


150975 05-Oct-2005 harti

This commit was generated by cvs2svn to compensate for changes in r150974,
which included commits to RCS files with non-trunk default branches.


150925 04-Oct-2005 harti

Add snmp_ntp/Makefile.in to the exclude list.


150924 04-Oct-2005 harti

These files are not needed and were imported by accident in the
previous import.


150921 04-Oct-2005 harti

This commit was generated by cvs2svn to compensate for changes in r150920,
which included commits to RCS files with non-trunk default branches.


146610 25-May-2005 harti

This commit was generated by cvs2svn to compensate for changes in r146609,
which included commits to RCS files with non-trunk default branches.


146526 23-May-2005 harti

This commit was generated by cvs2svn to compensate for changes in r146525,
which included commits to RCS files with non-trunk default branches.


145674 29-Apr-2005 harti

This commit was generated by cvs2svn to compensate for changes in r145673,
which included commits to RCS files with non-trunk default branches.


145558 26-Apr-2005 harti

This commit was generated by cvs2svn to compensate for changes in r145557,
which included commits to RCS files with non-trunk default branches.


142813 28-Feb-2005 harti

Don't extract the .gdbinit file from the distribution.


142811 28-Feb-2005 harti

This commit was generated by cvs2svn to compensate for changes in r142810,
which included commits to RCS files with non-trunk default branches.


133595 12-Aug-2004 harti

This commit was generated by cvs2svn to compensate for changes in r133594,
which included commits to RCS files with non-trunk default branches.


133430 10-Aug-2004 harti

This commit was generated by cvs2svn to compensate for changes in r133429,
which included commits to RCS files with non-trunk default branches.


133214 06-Aug-2004 harti

List some more files to be excluded from the original distribution.


133212 06-Aug-2004 harti

This commit was generated by cvs2svn to compensate for changes in r133211,
which included commits to RCS files with non-trunk default branches.


128238 14-Apr-2004 harti

This commit was generated by cvs2svn to compensate for changes in r128237,
which included commits to RCS files with non-trunk default branches.


125148 28-Jan-2004 harti

Add an exclusion list that lists all the files from the original
distribution that we don't need.


125012 26-Jan-2004 harti

Update the upgrade instructions to account for the fact, that
there is no need anymore to re-create files. Also give a hint to
look for changes needed to the Makefiles.


124862 23-Jan-2004 harti

This commit was generated by cvs2svn to compensate for changes in r124861,
which included commits to RCS files with non-trunk default branches.


122397 10-Nov-2003 harti

Add update instructions for bsnmp. Bsnmp is the base for the NgATM
ILMI daemon.


122395 10-Nov-2003 harti

This commit was generated by cvs2svn to compensate for changes in r122394,
which included commits to RCS files with non-trunk default branches.