[SNMP4J] BufferOverflowException while encoding a GETNEXT PDU

Tejo Vamsi tejovamsi at yahoo.com
Mon May 2 12:49:28 CEST 2005


Hi Frank, All,

I observed a very uncommon exception when SNMP4J was
trying to encode a big 
(contains 16 varbinds) GETNEXT PDU. The code actually
failed, when it was
trying to encode the OID of the last varbind, because
it tried to write beyond
the allocated buffer size. I suppose, this situation
of exceeding the buffer size
should not occur as the code pre-computes the buffer
size needed for this encoded
PDU and passes that stream to the encode method. I am
not really sure what is
causing the problem. I did not observe this scenario
in case of other 
GETNEXT PDUs. Any specific areas where I need to
investigate to fix the problem
? By the way is there any limit on the OID length ?

Following is the stack trace I got:
-------------------------------------------------------
	HeapByteBuffer(Buffer).nextPutIndex() line: 419
	HeapByteBuffer.put(byte) line: 145
	BEROutputStream.write(int) line: 65
	BER.encodeOID(OutputStream, byte, int[]) line: 429
	OID.encodeBER(OutputStream) line: 205
	VariableBinding.encodeBER(OutputStream) line: 176
	ScopedPDU(PDU).encodeBER(OutputStream) line: 465
	ScopedPDU.encodeBER(OutputStream) line: 127
	MPv3.prepareOutgoingMessage(Address, int, int, int,
byte[], int, PDU, boolean, PduHandle, Address,
BEROutputStream) line: 601
	MessageDispatcherImpl.sendPdu(TransportMapping,
Address, int, int, byte[], int, PDU, boolean) line:
375
	Snmp.sendMessage(PDU, Target, TransportMapping) line:
885
	Snmp.send(PDU, Target, TransportMapping, Object,
ResponseListener) line: 783
	Snmp.send(PDU, Target, Object, ResponseListener)
line: 771
-------------------------------------------------------

Thanks for your time.

Regards,
Tejo

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 



More information about the SNMP4J mailing list