From 0dd17697bb51c8d71dc498fd48db534a9fa957d3 Mon Sep 17 00:00:00 2001 From: Likitha Shetty Date: Tue, 7 Aug 2012 14:14:39 +0530 Subject: [PATCH] CS-14796. deployVirtualMachine api, added a check to see if the userdata provided is base64 encoded. Reviewed by: Prachi --- server/src/com/cloud/vm/UserVmManagerImpl.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/server/src/com/cloud/vm/UserVmManagerImpl.java b/server/src/com/cloud/vm/UserVmManagerImpl.java index 377ced9ae0f..4e78b1e3f52 100755 --- a/server/src/com/cloud/vm/UserVmManagerImpl.java +++ b/server/src/com/cloud/vm/UserVmManagerImpl.java @@ -2549,6 +2549,9 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager private void validateUserData(String userData) { byte[] decodedUserData = null; if (userData != null) { + if ( !userData.matches("^([A-Za-z0-9+/]{4})*([A-Za-z0-9+/]{4}|[A-Za-z0-9+/]{3}=|[A-Za-z0-9+/]{2}==)$")) { + throw new InvalidParameterValueException("User data is not base64 encoded", null); + } if (userData.length() >= 2 * MAX_USER_DATA_LENGTH_BYTES) { throw new InvalidParameterValueException("User data is too long", null); }