Skip to content

Commit e799ec7

Browse files
Potential fix for code scanning alert no. 23: Potentially overflowing call to snprintf
Co-authored-by: Copilot Autofix powered by AI <62310815+github-advanced-security[bot]@users.noreply.github.com>
1 parent 6de4c78 commit e799ec7

File tree

1 file changed

+11
-5
lines changed

1 file changed

+11
-5
lines changed

applications/zpc/components/zwave_api/src/zwapi_protocol_rx_dispatch.c

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -111,15 +111,21 @@ static const char *zwapi_frame_to_string(const uint8_t *buffer,
111111
static char message[1000] = {'\0'};
112112
uint16_t index = 0;
113113
for (uint16_t i = 0; i < buffer_length; i++) {
114+
int n = 0;
114115
if (i == IDX_LEN) {
115-
index += snprintf(message + index, sizeof(message) - index, "Length=");
116+
n = snprintf(message + index, sizeof(message) - index, "Length=");
116117
} else if (i == IDX_TYPE) {
117-
index += snprintf(message + index, sizeof(message) - index, "Type=");
118+
n = snprintf(message + index, sizeof(message) - index, "Type=");
118119
} else if (i == IDX_CMD) {
119-
index += snprintf(message + index, sizeof(message) - index, "Cmd=");
120+
n = snprintf(message + index, sizeof(message) - index, "Cmd=");
121+
} else {
122+
n = snprintf(message + index, sizeof(message) - index, "%02X ", buffer[i]);
120123
}
121-
index
122-
+= snprintf(message + index, sizeof(message) - index, "%02X ", buffer[i]);
124+
if (n < 0 || n >= (int)(sizeof(message) - index)) {
125+
// Stop processing if snprintf fails or buffer is full
126+
break;
127+
}
128+
index += n;
123129
}
124130
return message;
125131
}

0 commit comments

Comments
 (0)