From 0c285a7d4605eb0a400ebd472560a69d61361ea1 Mon Sep 17 00:00:00 2001 From: Rob Greene Date: Tue, 24 Oct 2023 13:37:07 -0500 Subject: [PATCH] Quick fix for AppleUtil#getWordValue to handle upper edge of buffer correctly. #126 --- .../com/webcodepro/applecommander/util/AppleUtil.java | 2 +- .../webcodepro/applecommander/util/AppleUtilTest.java | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/lib/ac-api/src/main/java/com/webcodepro/applecommander/util/AppleUtil.java b/lib/ac-api/src/main/java/com/webcodepro/applecommander/util/AppleUtil.java index 5a2aa8c..64d4dd6 100644 --- a/lib/ac-api/src/main/java/com/webcodepro/applecommander/util/AppleUtil.java +++ b/lib/ac-api/src/main/java/com/webcodepro/applecommander/util/AppleUtil.java @@ -60,7 +60,7 @@ public class AppleUtil { * A word is two bytes, in standard Apple LO/HI format. */ public static int getWordValue(byte[] buffer, int offset) { - if (offset+1 > buffer.length) { + if (offset+1 >= buffer.length) { return 0; } return getWordValue(buffer[offset], buffer[offset+1]); diff --git a/lib/ac-api/src/test/java/com/webcodepro/applecommander/util/AppleUtilTest.java b/lib/ac-api/src/test/java/com/webcodepro/applecommander/util/AppleUtilTest.java index 8046501..3b8e0fc 100644 --- a/lib/ac-api/src/test/java/com/webcodepro/applecommander/util/AppleUtilTest.java +++ b/lib/ac-api/src/test/java/com/webcodepro/applecommander/util/AppleUtilTest.java @@ -142,4 +142,15 @@ public class AppleUtilTest { } } } + + @Test + public void testGetWordValue_beyondEdge() { + byte[] data = new byte[] { 0x01, 0x02, 0x03, 0x04 }; + + assertEquals(0x0201, AppleUtil.getWordValue(data, 0)); + assertEquals(0x0302, AppleUtil.getWordValue(data, 1)); + assertEquals(0x0403, AppleUtil.getWordValue(data, 2)); + assertEquals(0x0000, AppleUtil.getWordValue(data, 3)); + assertEquals(0x0000, AppleUtil.getWordValue(data, 4)); + } }