From 77bdaaf8533959dd03f8a85882f7150b9f874f5f Mon Sep 17 00:00:00 2001 From: Steve Karg Date: Tue, 4 Feb 2025 13:56:53 -0600 Subject: [PATCH] Fixed usage of 8-bit modulo operator off-by-one maximum. (#901) --- ports/stm32f4xx/device.c | 2 +- src/bacnet/datalink/bsc/bsc-util.c | 4 ++-- src/bacnet/datalink/mstp.c | 2 +- test/bacnet/basic/sys/ringbuf/src/main.c | 4 ++-- test/bacnet/datalink/cobs/src/main.c | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/ports/stm32f4xx/device.c b/ports/stm32f4xx/device.c index 0ccfff10..c5d0c901 100644 --- a/ports/stm32f4xx/device.c +++ b/ports/stm32f4xx/device.c @@ -474,7 +474,7 @@ void Device_UUID_Init(void) /* 1. Generate 16 random bytes = 128 bits */ for (i = 0; i < sizeof(Device_UUID); i++) { - Device_UUID[i] = rand() % 255; + Device_UUID[i] = rand() % 256; } /* 2. Adjust certain bits according to RFC 4122 section 4.4. This just means do the following diff --git a/src/bacnet/datalink/bsc/bsc-util.c b/src/bacnet/datalink/bsc/bsc-util.c index a13e3ff7..4c217de8 100644 --- a/src/bacnet/datalink/bsc/bsc-util.c +++ b/src/bacnet/datalink/bsc/bsc-util.c @@ -97,7 +97,7 @@ void bsc_generate_random_vmac(BACNET_SC_VMAC_ADDRESS *p) int i; for (i = 0; i < BVLC_SC_VMAC_SIZE; i++) { - p->address[i] = rand() % 255; + p->address[i] = rand() % 256; if (i == 0) { /* According H.7.3 EUI-48 and Random-48 VMAC Address: The Random-48 VMAC is a 6-octet VMAC address in which the least @@ -120,7 +120,7 @@ void bsc_generate_random_uuid(BACNET_SC_UUID *p) int i; for (i = 0; i < BVLC_SC_UUID_SIZE; i++) { - p->uuid[i] = rand() % 255; + p->uuid[i] = rand() % 256; } debug_printf_hex(0, p->uuid, BVLC_SC_UUID_SIZE, "bsc_generate_random_uuid"); } diff --git a/src/bacnet/datalink/mstp.c b/src/bacnet/datalink/mstp.c index c9dbdc5d..9e3ef0d2 100644 --- a/src/bacnet/datalink/mstp.c +++ b/src/bacnet/datalink/mstp.c @@ -1352,7 +1352,7 @@ void MSTP_Zero_Config_UUID_Init(struct mstp_port_struct_t *mstp_port) } /* 1. Generate 16 random bytes = 128 bits */ for (i = 0; i < MSTP_UUID_SIZE; i++) { - mstp_port->UUID[i] = rand() % 255; + mstp_port->UUID[i] = rand() % 256; } /* 2. Adjust certain bits according to RFC 4122 section 4.4. This just means do the following diff --git a/test/bacnet/basic/sys/ringbuf/src/main.c b/test/bacnet/basic/sys/ringbuf/src/main.c index c0cd2925..cce9f05c 100644 --- a/test/bacnet/basic/sys/ringbuf/src/main.c +++ b/test/bacnet/basic/sys/ringbuf/src/main.c @@ -45,7 +45,7 @@ static void testRingAroundBuffer( /* test the ring around the buffer */ for (index = 0; index < element_count; index++) { for (count = 1; count < 4; count++) { - value = (index * count) % 255; + value = (index * count) % 256; for (data_index = 0; data_index < element_size; data_index++) { data_element[data_index] = value; } @@ -54,7 +54,7 @@ static void testRingAroundBuffer( zassert_equal(Ringbuf_Count(test_buffer), count, NULL); } for (count = 1; count < 4; count++) { - value = (index * count) % 255; + value = (index * count) % 256; test_data = Ringbuf_Peek(test_buffer); zassert_not_null(test_data, NULL); if (test_data) { diff --git a/test/bacnet/datalink/cobs/src/main.c b/test/bacnet/datalink/cobs/src/main.c index 2750d55e..dfad9496 100644 --- a/test/bacnet/datalink/cobs/src/main.c +++ b/test/bacnet/datalink/cobs/src/main.c @@ -38,7 +38,7 @@ static void test_COBS_Encode_Decode(void) size_t encoded_buffer_length, test_buffer_length; for (i = 2; i < sizeof(buffer); i++) { - buffer[i] = i % 0xff; + buffer[i] = i % 256; } encoded_buffer_length = cobs_frame_encode( encoded_buffer, sizeof(encoded_buffer), buffer, sizeof(buffer));