Fix potential ByteBuf leaks in pcep-base-parser 47/96947/1
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 20 Jul 2021 15:31:00 +0000 (17:31 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Tue, 20 Jul 2021 15:32:22 +0000 (17:32 +0200)
We are using ByteBuf.readBytes() to actually skip over some content,
use ByteBuf.skipBytes() instead.

JIRA: BGPCEP-973
Change-Id: I0163acd3f0d59e6bcb272af639092f2e1b74ed5b
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPMonitoringObjectParser.java
pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPObjectiveFunctionObjectParser.java
pcep/base-parser/src/main/java/org/opendaylight/protocol/pcep/parser/object/PCEPOverloadObjectParser.java

index ee37bfd31a770a7944d6f020bb6a7a68fa8942bc..ba90900050ba8f0c163f8db15856d17f3c48317d 100644 (file)
@@ -53,7 +53,7 @@ public class PCEPMonitoringObjectParser extends AbstractObjectWithTlvsParser<Tlv
     @Override
     public Object parseObject(final ObjectHeader header, final ByteBuf buffer) throws PCEPDeserializerException {
         checkArgument(buffer != null && buffer.isReadable(), "Array of bytes is mandatory. Cannot be null or empty.");
-        buffer.readBytes(RESERVED);
+        buffer.skipBytes(RESERVED);
         final BitArray flagBits = BitArray.valueOf(buffer, FLAGS_SIZE);
         final Flags flags = new Flags(flagBits.get(G_FLAG_POS), flagBits.get(I_FLAG_POS), flagBits.get(L_FLAG_POS),
                 flagBits.get(C_FLAG_POS), flagBits.get(P_FLAG_POS));
index e6e8f418f022927bda200cc9ce791de79d70aa12..c839761343de75e34296d4073948c4cc996e4434 100644 (file)
@@ -44,7 +44,7 @@ public final class PCEPObjectiveFunctionObjectParser extends AbstractObjectWithT
     public Of parseObject(final ObjectHeader header, final ByteBuf bytes) throws PCEPDeserializerException {
         checkArgument(bytes != null && bytes.isReadable(), "Array of bytes is mandatory. Can't be null or empty.");
         final Uint16 ofId = ByteBufUtils.readUint16(bytes);
-        bytes.readBytes(RESERVED);
+        bytes.skipBytes(RESERVED);
         final TlvsBuilder tlvsBuilder = new TlvsBuilder();
         parseTlvs(tlvsBuilder, bytes.slice());
         return new OfBuilder()
index 4333957c937dfc59271934faf2d509d18448a583..6415a0b38de9929e059c9c263a552eac23508ce8 100644 (file)
@@ -46,7 +46,7 @@ public class PCEPOverloadObjectParser extends CommonObjectParser implements Obje
     @Override
     public Object parseObject(final ObjectHeader header, final ByteBuf buffer) throws PCEPDeserializerException {
         checkArgument(buffer != null && buffer.isReadable(), "Array of bytes is mandatory. Can't be null or empty.");
-        buffer.readBytes(RESERVED + FLAGS);
+        buffer.skipBytes(RESERVED + FLAGS);
         return new OverloadBuilder()
                 .setDuration(ByteBufUtils.readUint16(buffer))
                 .build();