On 5/14/19 4:01 PM, Bill Fenner wrote:
> Perhaps getbulk no longer dumps core, but I can not get it to return
> anything but GENERR any more, and, it seems to leak memory.
>
> Any "large enough" request seems to fail in this way, e.g.,
> snmpbulkget -v 3 ... -Cn 5 -Cr 50 sysUpTime sysUpTime sysUpTime
> sysUpTime sysUpTime .1
>
> This is particularly frustrating because code was added to 5.8 to
> rebuild a getbulk reply if it's too big.  But there was already code
> to not build the PDU too big, it's just not taking the v3 header into
> account properly (that's my best guess, at least).  So now there are
> two different mechanisms to send a "right-size" reply and they both
> don't work.  Around 5.8 release time I was working with Robert Story
> to fix this, but that effort kind of petered out and Robert's work
> didn't make it into git.
>
> Can anyone get getbulk to work in the current 5.8-patches with SNMPv3?
>
> I've attached a test script with 504 failing test cases when I run it
> against an unmodified V5-8-patches branch, and net-snmp leaks about a
> meg of RAM during the test.  This is an adaptation of my internal test
> to the net-snmp test framework; the complete test would use all
> supported values for -l, -a, -x but for now this is the simplest one
> using nanp.

Hi Bill,

How about the patch below? I am not aware of any requirement in any RFC
to limit the maximum size of an SNMP reply to a single network MTU.

Thanks,

Bart.

Subject: [PATCH] libsnmp: Increase the maximum session receive size from
1472to 2**31-1 bytes

This patch adjusts a limit that was introduced by commit 6e83b3cd891d
("  - respect msgMaxSize in received v3 PDUs (in the weak sense that
if     the serialized response PDU is more than it, we don't send it)")
# v5.7.
---
 snmplib/snmp_api.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/snmplib/snmp_api.c b/snmplib/snmp_api.c
index c9a5b1edee34..e133ab6eb603 100644
--- a/snmplib/snmp_api.c
+++ b/snmplib/snmp_api.c
@@ -769,7 +769,7 @@ snmp_sess_init(netsnmp_session * session)
     session->retries = SNMP_DEFAULT_RETRIES;
     session->version = SNMP_DEFAULT_VERSION;
     session->securityModel = SNMP_DEFAULT_SECMODEL;
-    session->rcvMsgMaxSize = SNMP_MAX_MSG_SIZE;
+    session->rcvMsgMaxSize = netsnmp_max_send_msg_size();
     session->sndMsgMaxSize = netsnmp_max_send_msg_size();
     session->flags |= SNMP_FLAGS_DONT_PROBE;
 }





_______________________________________________
Net-snmp-coders mailing list
Net-snmp-coders@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/net-snmp-coders

Reply via email to