diff --git a/leopard/leopard.nim b/leopard/leopard.nim index 4bac400..fda40b8 100644 --- a/leopard/leopard.nim +++ b/leopard/leopard.nim @@ -206,7 +206,7 @@ proc init[TT: Leo]( if parity > buffers: return err("number of parity buffers cannot exceed number of data buffers!") - if buffers + parity > 65536: + if (buffers + parity) > 65536: return err("number of parity and data buffers cannot exceed 65536!") once: diff --git a/tests/testleopard.nim b/tests/testleopard.nim index 251af12..8c5cb00 100644 --- a/tests/testleopard.nim +++ b/tests/testleopard.nim @@ -20,6 +20,14 @@ suite "Leopard Parametrization": LeoEncoder.init(64, 1, 2).error == "number of parity buffers cannot exceed number of data buffers!" + test "Should not allow data + parity to exceed 65536": + check: + LeoEncoder.init(64, 65536 + 1, 0).error == + "number of parity and data buffers cannot exceed 65536!" + + LeoEncoder.init(64, 32768 + 1, 32768).error == + "number of parity and data buffers cannot exceed 65536!" + test "Should not allow encoding with invalid data buffer counts": var leo = LeoEncoder.init(64, 4, 2).tryGet()