Fix potential ByteBuf leak in bgp-inet 58/96958/1
authorRobert Varga <robert.varga@pantheon.tech>
Tue, 20 Jul 2021 15:43:14 +0000 (17:43 +0200)
committerRobert Varga <robert.varga@pantheon.tech>
Tue, 20 Jul 2021 17:18:26 +0000 (19:18 +0200)
We are using ByteBuf.readBytes() to frame a parsing chunk, but
we do not call ByteBuf.release() on it. Use ByteBuf.readSlice()
instead.

JIRA: BGPCEP-973
Change-Id: Ib0e6be0d8bca3518f0f318f137ca1a05196f84d6
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit 766073df92d59d588d42bb98c031c2c5e65909be)

bgp/parser-spi/src/main/java/org/opendaylight/protocol/bgp/parser/spi/pojo/SimpleBgpPrefixSidTlvRegistry.java

index 131d22a6016bf95fbe0430ffc363f88c68ae5cfc..2ee3df275f4ee30dd2325bc927fa50dd509c871b 100644 (file)
@@ -46,7 +46,7 @@ public final class SimpleBgpPrefixSidTlvRegistry implements BgpPrefixSidTlvRegis
         final int length = buffer.readUnsignedShort();
         checkState(length <= buffer.readableBytes(),
                 "Length of BGP prefix SID TLV exceeds readable bytes of income.");
-        return parser.parseBgpPrefixSidTlv(buffer.readBytes(length));
+        return parser.parseBgpPrefixSidTlv(buffer.readSlice(length));
     }
 
     @Override