From 5a209a098cb043e918a7505aaa93647613270e4b Mon Sep 17 00:00:00 2001 From: Andrew Steinborn Date: Sat, 22 Jun 2019 16:03:50 -0400 Subject: [PATCH] Fix memory leak in NativeVelocityCipher --- .../natives/encryption/NativeVelocityCipher.java | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/native/src/main/java/com/velocitypowered/natives/encryption/NativeVelocityCipher.java b/native/src/main/java/com/velocitypowered/natives/encryption/NativeVelocityCipher.java index b6a27a7c..b65501ff 100644 --- a/native/src/main/java/com/velocitypowered/natives/encryption/NativeVelocityCipher.java +++ b/native/src/main/java/com/velocitypowered/natives/encryption/NativeVelocityCipher.java @@ -56,11 +56,16 @@ public class NativeVelocityCipher implements VelocityCipher { int len = source.readableBytes(); ByteBuf out = ctx.alloc().directBuffer(len); - impl.process(this.ctx, source.memoryAddress() + source.readerIndex(), len, - out.memoryAddress(), encrypt); - source.skipBytes(len); - out.writerIndex(len); - return out; + try { + impl.process(this.ctx, source.memoryAddress() + source.readerIndex(), len, + out.memoryAddress(), encrypt); + source.skipBytes(len); + out.writerIndex(len); + return out; + } catch (Exception e) { + out.release(); + throw e; + } } @Override