Explorar o código

Added checks for disk size

Haseeb Qureshie hai 4 meses
pai
achega
08562e8926
Modificáronse 1 ficheiros con 12 adicións e 0 borrados
  1. 12 0
      src/lib/WebVM.svelte

+ 12 - 0
src/lib/WebVM.svelte

@@ -240,6 +240,15 @@
 		if(processCallback)
 		if(processCallback)
 			processCallback(processCount);
 			processCallback(processCount);
 	}
 	}
+	async function getLocalDiskImageSize(diskImageUrl) {
+		try {
+			const response = await fetch(diskImageUrl);
+			const blob = await response.blob();
+        	return blob.size;
+		} catch (error) {
+			console.error("Error fetching disk image:", error);
+		}
+	}
 	async function initCheerpX()
 	async function initCheerpX()
 	{
 	{
 		const CheerpX = await import('@leaningtech/cheerpx');
 		const CheerpX = await import('@leaningtech/cheerpx');
@@ -269,6 +278,9 @@
 				}
 				}
 				break;
 				break;
 			case "bytes":
 			case "bytes":
+            	const fileSize = await getLocalDiskImageSize(configObj.diskImageUrl);
+				if (fileSize > 2 * 1024 * 1024 * 1024)
+                	throw new Error("Disk image size exceeds the allowed 2GB limit.");
 				blockDevice = await CheerpX.HttpBytesDevice.create(configObj.diskImageUrl);
 				blockDevice = await CheerpX.HttpBytesDevice.create(configObj.diskImageUrl);
 				break;
 				break;
 			case "github":
 			case "github":