summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/virtualization/disk/DiskImageVmdk.java
diff options
context:
space:
mode:
authorSimon Rettberg2022-02-14 12:22:48 +0100
committerSimon Rettberg2022-02-14 12:22:48 +0100
commit8d48e0ec97122d72a5ab224c535e51de6a2bef77 (patch)
tree6d4a40fb8eb9e2e1bb84ec69c64bf8db13c13f17 /src/main/java/org/openslx/virtualization/disk/DiskImageVmdk.java
parentForce Unix line endings for Libvirt XML files (even on Windows platforms) (diff)
downloadmaster-sync-shared-8d48e0e.tar.gz
master-sync-shared-8d48e0e.tar.xz
master-sync-shared-8d48e0e.zip
Always pass charset in String constructor; don't treat strings as binary safe
Diffstat (limited to 'src/main/java/org/openslx/virtualization/disk/DiskImageVmdk.java')
-rw-r--r--src/main/java/org/openslx/virtualization/disk/DiskImageVmdk.java7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/main/java/org/openslx/virtualization/disk/DiskImageVmdk.java b/src/main/java/org/openslx/virtualization/disk/DiskImageVmdk.java
index 720ec37..77986ef 100644
--- a/src/main/java/org/openslx/virtualization/disk/DiskImageVmdk.java
+++ b/src/main/java/org/openslx/virtualization/disk/DiskImageVmdk.java
@@ -1,6 +1,7 @@
package org.openslx.virtualization.disk;
import java.io.RandomAccessFile;
+import java.nio.charset.StandardCharsets;
import org.openslx.util.Util;
import org.openslx.virtualization.configuration.VirtualizationConfigurationVmwareFileFormat;
@@ -117,15 +118,15 @@ public class DiskImageVmdk extends DiskImage
// get content of descriptor file embedded into the VMDK disk image
final long vmdkDescriptorOffset = vmdkDescriptorSectorOffset * DiskImageVmdk.VMDK_SECTOR_SIZE;
final long vmdkDescriptorSizeMax = vmdkDescriptorSectorSize * DiskImageVmdk.VMDK_SECTOR_SIZE;
- final String descriptorStr = DiskImageUtils.readBytesAsString( diskFile, vmdkDescriptorOffset,
- Long.valueOf( vmdkDescriptorSizeMax ).intValue() );
+ final String descriptorStr = new String ( DiskImageUtils.readBytesAsArray( diskFile, vmdkDescriptorOffset,
+ Long.valueOf( vmdkDescriptorSizeMax ).intValue() ), StandardCharsets.US_ASCII );
// get final length of the content within the sectors to be able to trim all 'zero' characters
final int vmdkDescriptorSize = descriptorStr.indexOf( 0 );
// if final length of the content is invalid, throw an exception
if ( vmdkDescriptorSize > vmdkDescriptorSizeMax || vmdkDescriptorSize < 0 ) {
- final String errorMsg = new String( "Embedded descriptor size in VMDK disk image is invalid!" );
+ final String errorMsg = "Embedded descriptor size in VMDK disk image is invalid!";
throw new DiskImageException( errorMsg );
}