|
12 | 12 | *****************************************************************************/
|
13 | 13 |
|
14 | 14 | // Generic includes
|
| 15 | +#include <assert.h> |
15 | 16 | #include <string.h>
|
16 | 17 | #include <stdio.h>
|
17 | 18 |
|
@@ -111,15 +112,22 @@ static const char *zwapi_frame_to_string(const uint8_t *buffer,
|
111 | 112 | static char message[1000] = {'\0'};
|
112 | 113 | uint16_t index = 0;
|
113 | 114 | for (uint16_t i = 0; i < buffer_length; i++) {
|
| 115 | + int written = 0; |
114 | 116 | if (i == IDX_LEN) {
|
115 |
| - index += snprintf(message + index, sizeof(message) - index, "Length="); |
| 117 | + written = snprintf(message + index, sizeof(message) - index, "Length="); |
116 | 118 | } else if (i == IDX_TYPE) {
|
117 |
| - index += snprintf(message + index, sizeof(message) - index, "Type="); |
| 119 | + written = snprintf(message + index, sizeof(message) - index, "Type="); |
118 | 120 | } else if (i == IDX_CMD) {
|
119 |
| - index += snprintf(message + index, sizeof(message) - index, "Cmd="); |
| 121 | + written = snprintf(message + index, sizeof(message) - index, "Cmd="); |
120 | 122 | }
|
121 |
| - index |
122 |
| - += snprintf(message + index, sizeof(message) - index, "%02X ", buffer[i]); |
| 123 | + written |
| 124 | + = snprintf(message + index, sizeof(message) - index, "%02X ", buffer[i]); |
| 125 | + if (written < 0 || written >= (int)(sizeof(message) - index)) { |
| 126 | + assert(false); |
| 127 | + sl_log_error(LOG_TAG, "Overflow in zwapi_frame_to_string\n"); |
| 128 | + return NULL; |
| 129 | + } |
| 130 | + index += written; |
123 | 131 | }
|
124 | 132 | return message;
|
125 | 133 | }
|
@@ -650,7 +658,7 @@ void zwave_api_protocol_rx_dispatch(uint8_t *pData, uint16_t len)
|
650 | 658 | case FUNC_ID_ZW_REQUEST_PROTOCOL_CC_ENCRYPTION:
|
651 | 659 | if (zwave_api_get_callbacks()->protocol_cc_encryption_request != NULL) {
|
652 | 660 | // ZW->HOST: REQ | 0x6C | destination_node_id | payload_length | payload | protocol_metadata_length | protocol_metadata | use_supervision | session_id
|
653 |
| - uint8_t current_index = IDX_DATA; |
| 661 | + uint8_t current_index = IDX_DATA; |
654 | 662 | const zwave_node_id_t destination_node_id
|
655 | 663 | = zwapi_read_node_id(pData, ¤t_index);
|
656 | 664 | const uint8_t payload_length = pData[current_index++];
|
|
0 commit comments