|
11 | 11 | *
|
12 | 12 | *****************************************************************************/
|
13 | 13 |
|
| 14 | +#include <assert.h> |
14 | 15 | #include <string.h>
|
15 | 16 | #include "zwapi_connection.h"
|
16 | 17 | #include "zwapi_serial.h"
|
@@ -45,19 +46,44 @@ static const char *zwapi_frame_to_string(const uint8_t *buffer,
|
45 | 46 | {
|
46 | 47 | static char message[1000] = {'\0'};
|
47 | 48 | uint16_t index = 0;
|
| 49 | + int written = 0; |
48 | 50 | for (uint16_t i = 0; i < buffer_length; i++) {
|
49 | 51 | if (i == 0) {
|
50 | 52 | // Don't log the SOF byte.
|
51 | 53 | continue;
|
52 | 54 | } else if (i == 1) {
|
53 |
| - index += snprintf(message + index, sizeof(message) - index, "Length="); |
| 55 | + written = snprintf(message + index, sizeof(message) - index, "Length="); |
| 56 | + if (written < 0 || written >= sizeof(message) - index) { |
| 57 | + sl_log_error(LOG_TAG, "Overflow in zwapi_frame_to_string\n"); |
| 58 | + assert(false); |
| 59 | + return NULL; |
| 60 | + } |
| 61 | + index += written; |
54 | 62 | } else if (i == 2) {
|
55 |
| - index += snprintf(message + index, sizeof(message) - index, "Type="); |
| 63 | + written = snprintf(message + index, sizeof(message) - index, "Type="); |
| 64 | + if (written < 0 || written >= sizeof(message) - index) { |
| 65 | + sl_log_error(LOG_TAG, "Overflow in zwapi_frame_to_string\n"); |
| 66 | + assert(false); |
| 67 | + return NULL; |
| 68 | + } |
| 69 | + index += written; |
56 | 70 | } else if (i == 3) {
|
57 |
| - index += snprintf(message + index, sizeof(message) - index, "Cmd="); |
| 71 | + written = snprintf(message + index, sizeof(message) - index, "Cmd="); |
| 72 | + if (written < 0 || written >= sizeof(message) - index) { |
| 73 | + sl_log_error(LOG_TAG, "Overflow in zwapi_frame_to_string\n"); |
| 74 | + assert(false); |
| 75 | + return NULL; |
| 76 | + } |
| 77 | + index += written; |
| 78 | + } |
| 79 | + written |
| 80 | + = snprintf(message + index, sizeof(message) - index, "%02X ", buffer[i]); |
| 81 | + if (written < 0 || written >= sizeof(message) - index) { |
| 82 | + sl_log_error(LOG_TAG, "Overflow in zwapi_frame_to_string\n"); |
| 83 | + assert(false); |
| 84 | + return NULL; |
58 | 85 | }
|
59 |
| - index |
60 |
| - += snprintf(message + index, sizeof(message) - index, "%02X ", buffer[i]); |
| 86 | + index += written; |
61 | 87 | }
|
62 | 88 | return message;
|
63 | 89 | }
|
|
0 commit comments