From 2c3c88e2092dae44de823cf52cb3e2cc787bb3a1 Mon Sep 17 00:00:00 2001 From: Rohit Yadav Date: Wed, 26 Jun 2019 23:18:20 +0530 Subject: [PATCH] console-proxy: fix potential NPE condition (#3419) When checking if the console proxy URL domain starts with *, the code does not check if the provided string is null. When domain is not configured the IP address should be used. Fixes #3164 Signed-off-by: Rohit Yadav --- .../java/com/cloud/info/ConsoleProxyInfo.java | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/core/src/main/java/com/cloud/info/ConsoleProxyInfo.java b/core/src/main/java/com/cloud/info/ConsoleProxyInfo.java index 78cb877e7db..7e1be6a9cad 100644 --- a/core/src/main/java/com/cloud/info/ConsoleProxyInfo.java +++ b/core/src/main/java/com/cloud/info/ConsoleProxyInfo.java @@ -55,18 +55,16 @@ public class ConsoleProxyInfo { private String formatProxyAddress(String consoleProxyUrlDomain, String proxyIpAddress) { StringBuffer sb = new StringBuffer(); - // Domain in format *.example.com, proxy IP is 1.2.3.4 --> 1-2-3-4.example.com - if (consoleProxyUrlDomain.startsWith("*")) { + if (StringUtils.isBlank(consoleProxyUrlDomain)) { + // Blank config, we use the proxy IP + sb.append(proxyIpAddress); + } else if (consoleProxyUrlDomain.startsWith("*")) { + // Domain in format *.example.com, proxy IP is 1.2.3.4 --> 1-2-3-4.example.com sb.append(proxyIpAddress.replaceAll("\\.", "-")); sb.append(consoleProxyUrlDomain.substring(1)); // skip the * - - // Otherwise we assume a valid domain if config not blank - } else if (StringUtils.isNotBlank(consoleProxyUrlDomain)) { - sb.append(consoleProxyUrlDomain); - - // Blank config, we use the proxy IP } else { - sb.append(proxyIpAddress); + // Otherwise we assume a valid domain if config not blank + sb.append(consoleProxyUrlDomain); } return sb.toString(); }