From 70e68be4f32538b7965e916cce1f51334fadbbd5 Mon Sep 17 00:00:00 2001 From: Hugo Trippaers Date: Tue, 22 Jul 2014 13:10:26 +0200 Subject: [PATCH] Fix string encoding problem reported by coverity --- .../resource/virtualnetwork/ConfigHelper.java | 39 ++++++++++++------- 1 file changed, 25 insertions(+), 14 deletions(-) diff --git a/core/src/com/cloud/agent/resource/virtualnetwork/ConfigHelper.java b/core/src/com/cloud/agent/resource/virtualnetwork/ConfigHelper.java index d94c1c660b5..a065a0228ac 100644 --- a/core/src/com/cloud/agent/resource/virtualnetwork/ConfigHelper.java +++ b/core/src/com/cloud/agent/resource/virtualnetwork/ConfigHelper.java @@ -19,6 +19,16 @@ package com.cloud.agent.resource.virtualnetwork; +import java.io.UnsupportedEncodingException; +import java.util.HashMap; +import java.util.LinkedList; +import java.util.List; +import java.util.Map; + +import org.apache.commons.codec.binary.Base64; + +import com.google.gson.Gson; + import com.cloud.agent.api.BumpUpPriorityCommand; import com.cloud.agent.api.SetupGuestNetworkCommand; import com.cloud.agent.api.routing.CreateIpAliasCommand; @@ -53,13 +63,6 @@ import com.cloud.network.HAProxyConfigurator; import com.cloud.network.LoadBalancerConfigurator; import com.cloud.network.rules.FirewallRule; import com.cloud.utils.net.NetUtils; -import com.google.gson.Gson; -import org.apache.commons.codec.binary.Base64; - -import java.util.HashMap; -import java.util.LinkedList; -import java.util.List; -import java.util.Map; public class ConfigHelper { @@ -307,10 +310,14 @@ public class ConfigHelper { data.put(cmd.getVmIpAddress(), cmd.getVmData()); String json = new Gson().toJson(data); + String encoded; + try { + encoded = Base64.encodeBase64String(json.getBytes("UTF-8")); + } catch (UnsupportedEncodingException e) { + throw new IllegalArgumentException("Unable retrieve UTF-8 encoded data from vmdata"); + } - json = Base64.encodeBase64String(json.getBytes()); - - String args = "-d " + json; + String args = "-d " + encoded; cfg.add(new ScriptConfigItem(VRScripts.VMDATA, args)); return cfg; @@ -367,12 +374,16 @@ public class ConfigHelper { LinkedList cfg = new LinkedList<>(); List ipAliasTOs = cmd.getIpAliasList(); - String args = ""; + StringBuilder args = new StringBuilder(); for (IpAliasTO ipaliasto : ipAliasTOs) { - args = args + ipaliasto.getAlias_count() + ":" + ipaliasto.getRouterip() + ":" + ipaliasto.getNetmask() + "-"; + args.append(ipaliasto.getAlias_count()); + args.append(':'); + args.append(ipaliasto.getRouterip()); + args.append(':'); + args.append(ipaliasto.getNetmask()); + args.append('-'); } - - cfg.add(new ScriptConfigItem(VRScripts.IPALIAS_CREATE, args)); + cfg.add(new ScriptConfigItem(VRScripts.IPALIAS_CREATE, args.toString())); return cfg; }