From 23b21e63a010a55ba429e31415f8fa2e5c3117e2 Mon Sep 17 00:00:00 2001 From: nickofolas Date: Mon, 3 Jan 2022 17:00:32 -0600 Subject: [PATCH] Validate RAM amount in ns.purchaseServer() --- src/NetscriptFunctions.ts | 2 +- src/Server/ServerPurchases.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/NetscriptFunctions.ts b/src/NetscriptFunctions.ts index b52f1b83c..d9608de53 100644 --- a/src/NetscriptFunctions.ts +++ b/src/NetscriptFunctions.ts @@ -1639,7 +1639,7 @@ export function NetscriptFunctions(workerScript: WorkerScript): NS { const cost = getPurchaseServerCost(ram); if (cost === Infinity) { - workerScript.log("purchaseServer", () => `Invalid argument: ram='${ram}' must be power of 2`); + workerScript.log("purchaseServer", () => `Invalid argument: ram='${ram}' must be a positive power of 2`); return ""; } diff --git a/src/Server/ServerPurchases.ts b/src/Server/ServerPurchases.ts index 1c7f6d08d..3cf62635d 100644 --- a/src/Server/ServerPurchases.ts +++ b/src/Server/ServerPurchases.ts @@ -20,7 +20,7 @@ import { isPowerOfTwo } from "../utils/helpers/isPowerOfTwo"; */ export function getPurchaseServerCost(ram: number): number { const sanitizedRam = Math.round(ram); - if (isNaN(sanitizedRam) || !isPowerOfTwo(sanitizedRam)) { + if (isNaN(sanitizedRam) || !isPowerOfTwo(sanitizedRam) || !(Math.sign(sanitizedRam) === 1)) { return Infinity; }