Skip to content

Commit 6de4c78

Browse files
committed
WIP: mod: applications/zpc/components/zwave/zwave_controller/src/zwave_controller_utils.c (main)
Signed-off-by: Philippe Coval <[email protected]>
1 parent 084e738 commit 6de4c78

File tree

1 file changed

+41
-33
lines changed

1 file changed

+41
-33
lines changed

applications/zpc/components/zwave/zwave_controller/src/zwave_controller_utils.c

Lines changed: 41 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
*****************************************************************************/
1313

1414
//Generic includes
15+
#include <assert.h>
1516
#include <stdlib.h>
1617
#include <stdio.h>
1718

@@ -118,34 +119,38 @@ void zwave_sl_log_nif_data(zwave_node_id_t node_id,
118119
char message[DEBUG_MESSAGE_BUFFER_LENGTH];
119120
uint16_t index = 0;
120121

121-
int n = snprintf(message + index,
122-
sizeof(message) - index,
123-
"NIF from NodeID: %d",
124-
node_id);
125-
if (n < 0 || n >= (int)(sizeof(message) - index)) {
126-
break;
122+
int written = snprintf(message + index,
123+
sizeof(message) - index,
124+
"NIF from NodeID: %d",
125+
node_id);
126+
if (written < 0 || written >= (int)(sizeof(message) - index)) {
127+
sl_log_error(LOG_TAG, "Buffer overflow prevented while writing message.");
128+
assert(false);
127129
}
128-
index += n;
129-
130-
n = snprintf(message + index,
131-
sizeof(message) - index,
132-
" Capability/Security bytes: 0x%02X 0x%02X - ",
133-
node_info->listening_protocol,
134-
node_info->optional_protocol);
135-
if (n < 0 || n >= (int)(sizeof(message) - index)) {
136-
break;
130+
index += written;
131+
132+
written = snprintf(message + index,
133+
sizeof(message) - index,
134+
" Capability/Security bytes: 0x%02X 0x%02X - ",
135+
node_info->listening_protocol,
136+
node_info->optional_protocol);
137+
if (written < 0 || written >= (int)(sizeof(message) - index)) {
138+
sl_log_error(LOG_TAG, "Buffer overflow prevented while writing message.");
139+
assert(false);
137140
}
138-
index += n;
141+
index += written;
139142

140143
if (node_info->optional_protocol
141144
& ZWAVE_NODE_INFO_OPTIONAL_PROTOCOL_CONTROLLER_MASK) {
142-
n = snprintf(message + index,
143-
sizeof(message) - index,
144-
"The node is a controller - ");
145-
if (n < 0 || n >= (int)(sizeof(message) - index)) {
146-
break;
145+
written = snprintf(message + index,
146+
sizeof(message) - index,
147+
"The node is a controller - ");
148+
if (written < 0 || written >= (int)(sizeof(message) - index)) {
149+
sl_log_error(LOG_TAG, "Buffer overflow prevented while writing message.");
150+
assert(false);
147151
}
148-
index += n;
152+
index += written;
153+
149154
} else {
150155
index += snprintf(message + index,
151156
sizeof(message) - index,
@@ -154,11 +159,13 @@ void zwave_sl_log_nif_data(zwave_node_id_t node_id,
154159

155160
if (node_info->listening_protocol
156161
& ZWAVE_NODE_INFO_LISTENING_PROTOCOL_LISTENING_MASK) {
157-
n = snprintf(message + index, sizeof(message) - index, "AL mode - ");
158-
if (n < 0 || n >= (int)(sizeof(message) - index)) {
159-
break;
162+
written = snprintf(message + index, sizeof(message) - index, "AL mode - ");
163+
if (written < 0 || written >= (int)(sizeof(message) - index)) {
164+
sl_log_error(LOG_TAG, "Buffer overflow prevented while writing message.");
165+
assert(false);
160166
}
161-
index += n;
167+
index += written;
168+
162169
} else if (node_info->optional_protocol
163170
& (ZWAVE_NODE_INFO_OPTIONAL_PROTOCOL_SENSOR_1000MS_MASK
164171
| ZWAVE_NODE_INFO_OPTIONAL_PROTOCOL_SENSOR_250MS_MASK)) {
@@ -180,14 +187,15 @@ void zwave_sl_log_nif_data(zwave_node_id_t node_id,
180187
node_info->specific_device_class);
181188

182189
for (uint8_t i = 0; i < node_info->command_class_list_length; i++) {
183-
n = snprintf(message + index,
184-
sizeof(message) - index,
185-
"%02X ",
186-
node_info->command_class_list[i]);
187-
if (n < 0 || n >= (int)(sizeof(message) - index)) {
188-
break;
190+
written = snprintf(message + index,
191+
sizeof(message) - index,
192+
"%02X ",
193+
node_info->command_class_list[i]);
194+
if (written < 0 || written >= (int)(sizeof(message) - index)) {
195+
sl_log_error(LOG_TAG, "Buffer overflow prevented while writing message.");
196+
assert(false);
189197
}
190-
index += n;
198+
index += written;
191199
}
192200

193201
sl_log_debug(LOG_TAG, "%s", message);

0 commit comments

Comments
 (0)