SNMP4J 3.7.4 and 2.8.15 have been released 2022-11-10T23:00:00Z to add a maximum outbound message length limit on TransportMapping to more precisely control outbound message sizes as required to fix a DoS/OutOfMemory bug in SNMP4J-AgentX prior to 3.6.0 and 2.7.3 respectively.
CHANGES SNMP4J 3.7.4
- Added [AS-38]:
TransportMapping.getMaxOutboundMessageSizeto allow specifying an upper limit for outgoing messages per TransportMapping. Before this version, theTransportMapping.getMaxInboundMessageSizewas used in most cases to limit the outbound traffic. Although, the implementation of the new outbound limit defaults to the inbound limit, the outbound limit is now used to limit the maximum message size inCommandResponderEventprovided by theCommandListener.processPduinterface in any case. - Added: Unit test for
TableUtilsthat tests sparse table functionality with missing columns and heavily changing rows/column availability in simulated agent during retrieval. - Improved:
TableEventinstances for rows fully received by the agent, but last column is not returned by the agent (i.e., a sparse table with missing last column) are now returned immediately, ifTableUtilsdetect, that the last column is empty. Before, all rows were cached until the whole table was fully retrieved in this case. - Added:
TableUtils.setRowLimitto limit the total rows returned byTableUtils.getTable(..). Default is “no limit” (0) as before. - Fixed: JavaDoc
gifimage links in package HTML files (moved JavaDoc gifs tosrc/main/javadoc).
CHANGES SNMP4J 2.8.15
- Added [AS-38]:
TransportMapping.getMaxOutboundMessageSizeto allow specifying an upper limit for outgoing messages per TransportMapping. Before this version, theTransportMapping.getMaxInboundMessageSizewas used in most cases to limit the outbound traffic. Although, the implementation of the new outbound limit defaults to the inbound limit, the outbound limit is now used to limit the maximum message size inCommandResponderEventprovided by theCommandListener.processPduinterface in any case. - Added: Unit test for
TableUtilsthat tests sparse table functionality with missing columns and heavily changing rows/column availability in simulated agent during retrieval. - Improved:
TableEventinstances for rows fully received by the agent, but last column is not returned by the agent (i.e., a sparse table with missing last column) are now returned immediately, ifTableUtilsdetect, that the last column is empty. Before, all rows were cached until the whole table was fully retrieved in this case.