From b63e11ece6d2757d3f2857bcf2ee9db88bfab8d4 Mon Sep 17 00:00:00 2001 From: Alexandre Montplaisir Date: Thu, 2 Jun 2016 05:12:44 -0400 Subject: [PATCH] Fix: Specify encoding when reading agent port file FileReader uses the default platform encoding. InputStreamReader on the other hand allows supplying an encoding, which is always safer to do. Signed-off-by: Alexandre Montplaisir Signed-off-by: Mathieu Desnoyers --- .../lttng/ust/agent/client/LttngTcpSessiondClient.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/liblttng-ust-java-agent/java/lttng-ust-agent-common/org/lttng/ust/agent/client/LttngTcpSessiondClient.java b/liblttng-ust-java-agent/java/lttng-ust-agent-common/org/lttng/ust/agent/client/LttngTcpSessiondClient.java index 793a5f8e..f78fdbd0 100644 --- a/liblttng-ust-java-agent/java/lttng-ust-agent-common/org/lttng/ust/agent/client/LttngTcpSessiondClient.java +++ b/liblttng-ust-java-agent/java/lttng-ust-agent-common/org/lttng/ust/agent/client/LttngTcpSessiondClient.java @@ -21,15 +21,16 @@ package org.lttng.ust.agent.client; import java.io.BufferedReader; import java.io.DataInputStream; import java.io.DataOutputStream; -import java.io.File; +import java.io.FileInputStream; import java.io.FileNotFoundException; -import java.io.FileReader; import java.io.IOException; +import java.io.InputStreamReader; import java.lang.management.ManagementFactory; import java.net.Socket; import java.net.UnknownHostException; import java.nio.ByteBuffer; import java.nio.ByteOrder; +import java.nio.charset.Charset; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; @@ -45,6 +46,7 @@ public class LttngTcpSessiondClient implements Runnable { private static final String SESSION_HOST = "127.0.0.1"; private static final String ROOT_PORT_FILE = "/var/run/lttng/agent.port"; private static final String USER_PORT_FILE = "/.lttng/agent.port"; + private static final Charset PORT_FILE_ENCODING = Charset.forName("UTF-8"); private static final int PROTOCOL_MAJOR_VERSION = 2; private static final int PROTOCOL_MINOR_VERSION = 0; @@ -204,10 +206,9 @@ public class LttngTcpSessiondClient implements Runnable { private static int getPortFromFile(String path) throws IOException { int port; BufferedReader br = null; - File file = new File(path); try { - br = new BufferedReader(new FileReader(file)); + br = new BufferedReader(new InputStreamReader(new FileInputStream(path), PORT_FILE_ENCODING)); String line = br.readLine(); port = Integer.parseInt(line, 10); if (port < 0 || port > 65535) { -- 2.34.1