From 14c8bca1f415a6a6a6cd27cec775c2d1e52427aa Mon Sep 17 00:00:00 2001
From: boli <boli@localhost>
Date: Fri, 01 May 2009 01:14:55 +0000
Subject: [PATCH] Second fix for issue 3949: All ASN.1 parsing code now ignores trailing unrecognized SEQUENCE components.
---
opendj-sdk/opends/src/server/org/opends/server/protocols/asn1/ASN1ByteSequenceReader.java | 12 ++++++++----
1 files changed, 8 insertions(+), 4 deletions(-)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/protocols/asn1/ASN1ByteSequenceReader.java b/opendj-sdk/opends/src/server/org/opends/server/protocols/asn1/ASN1ByteSequenceReader.java
index 7d8d608..921a4fc 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/protocols/asn1/ASN1ByteSequenceReader.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/protocols/asn1/ASN1ByteSequenceReader.java
@@ -36,12 +36,17 @@
import org.opends.server.types.ByteSequenceReader;
import org.opends.server.types.ByteString;
import org.opends.server.types.ByteStringBuilder;
+import org.opends.server.loggers.debug.DebugTracer;
+import static org.opends.server.loggers.debug.DebugLogger.getTracer;
+import static org.opends.server.loggers.debug.DebugLogger.debugEnabled;
/**
* An ASN.1 reader that reads from a {@link ByteSequenceReader}.
*/
final class ASN1ByteSequenceReader implements ASN1Reader
{
+ private static final DebugTracer TRACER = getTracer();
+
private int state = ELEMENT_READ_STATE_NEED_TYPE;
private byte peekType = 0;
private int peekLength = -1;
@@ -473,11 +478,10 @@
throw new ASN1Exception(message);
}
- if(reader.remaining() > 0)
+ if(reader.remaining() > 0 && debugEnabled())
{
- Message message =
- ERR_ASN1_SEQUENCE_READ_NOT_ENDED.get(reader.remaining(), peekLength);
- throw new ASN1Exception(message);
+ TRACER.debugWarning("Ignoring %d unused trailing bytes in " +
+ "ASN.1 SEQUENCE", reader.remaining());
}
reader = readerStack.removeFirst();
--
Gitblit v1.10.0