From 0885d16ac22a0ecd2267bf3c8818a3a8a5a9dadb Mon Sep 17 00:00:00 2001
From: Valery Kharseko <vharseko@3a-systems.ru>
Date: Fri, 31 Jul 2026 07:48:54 +0000
Subject: [PATCH] Fix CodeQL warning-severity alerts: missed wakeups, resource leaks, escaping threads (#790)
---
opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/Base64.java | 11 ++++++++---
1 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/Base64.java b/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/Base64.java
index 84d909d..ba022a8 100644
--- a/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/Base64.java
+++ b/opendj-ldap-toolkit/src/main/java/com/forgerock/opendj/ldap/tools/Base64.java
@@ -13,6 +13,7 @@
*
* Copyright 2006-2009 Sun Microsystems, Inc.
* Portions Copyright 2014-2016 ForgeRock AS.
+ * Portions Copyright 2026 3A Systems, LLC.
*/
package com.forgerock.opendj.ldap.tools;
@@ -42,6 +43,7 @@
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintStream;
+import java.io.Reader;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
@@ -246,11 +248,14 @@
dataToDecode = encodedDataArg.getValue();
} else {
final boolean readFromFile = encodedDataFilePathArg.isPresent();
+ Reader source = null;
BufferedReader reader = null;
final String encodedDataFilePath = encodedDataFilePathArg.getValue();
try {
- reader = new BufferedReader(readFromFile ? new FileReader(encodedDataFilePath)
- : new InputStreamReader(System.in));
+ // Only a file is closed below; System.in belongs to the caller.
+ source = readFromFile ? new FileReader(encodedDataFilePath)
+ : new InputStreamReader(System.in);
+ reader = new BufferedReader(source);
final StringBuilder buffer = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
@@ -270,7 +275,7 @@
ERR_BASE64_CANNOT_READ_ENCODED_DATA.get(getExceptionMessage(e)));
} finally {
if (readFromFile) {
- closeSilently(reader);
+ closeSilently(reader, source);
}
}
}
--
Gitblit v1.10.0