Skip to content

Commit 1fcd2f8

Browse files
committed
WIP: mod: applications/zpc/applications/zwave_api_demo/src/zwave_api_demo_commands.c (main)
Signed-off-by: Philippe Coval <[email protected]>
1 parent e799ec7 commit 1fcd2f8

File tree

1 file changed

+66
-24
lines changed

1 file changed

+66
-24
lines changed

applications/zpc/applications/zwave_api_demo/src/zwave_api_demo_commands.c

Lines changed: 66 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -312,13 +312,27 @@ static sl_status_t node_list()
312312
if (command_status == SL_STATUS_OK) {
313313
char message[MAXIMUM_MESSAGE_SIZE];
314314
uint16_t index = 0;
315-
index
316-
+= snprintf(message + index, sizeof(message) - index, "NodeID List: ");
315+
int written
316+
= snprintf(message + index, sizeof(message) - index, "NodeID List: ");
317+
if (written < 0 || written >= (int)(sizeof(message) - index)) {
318+
sl_log_error(LOG_TAG,
319+
"Buffer overflow prevented while writing message\n");
320+
return SL_STATUS_FAIL;
321+
}
322+
index += written;
323+
317324
for (zwave_node_id_t node_id = ZW_MIN_NODE_ID; node_id <= ZW_LR_MAX_NODE_ID;
318325
node_id++) {
319326
if (ZW_IS_NODE_IN_MASK(node_id, node_list) == 1) {
320-
index
321-
+= snprintf(message + index, sizeof(message) - index, "%d ", node_id);
327+
written
328+
= snprintf(message + index, sizeof(message) - index, "%d ", node_id);
329+
if (written < 0 || written >= (int)(sizeof(message) - index)) {
330+
sl_log_error(LOG_TAG,
331+
"Buffer overflow prevented while writing message\n");
332+
assert(false);
333+
return SL_STATUS_FAIL;
334+
}
335+
index += written;
322336
}
323337
}
324338
sl_log_info(LOG_TAG, "%s\n", message);
@@ -337,39 +351,67 @@ static sl_status_t failed_node_list()
337351
}
338352
char message[MAXIMUM_MESSAGE_SIZE];
339353
uint16_t index = 0;
340-
index += snprintf(message + index,
341-
sizeof(message) - index,
342-
"Failed NodeID List: ");
354+
int written = snprintf(message + index,
355+
sizeof(message) - index,
356+
"Failed NodeID List: ");
357+
if (written < 0 || written >= (int)(sizeof(message) - index)) {
358+
sl_log_error(LOG_TAG, "Buffer overflow prevented while writing message\n");
359+
assert(false);
360+
return SL_STATUS_FAIL;
361+
}
362+
index += written;
363+
343364
for (zwave_node_id_t node_id = ZW_MIN_NODE_ID; node_id <= ZW_LR_MAX_NODE_ID;
344365
node_id++) {
345366
if (ZW_IS_NODE_IN_MASK(node_id, node_list) == 1) {
346367
if (zwapi_is_node_failed(node_id)) {
347-
index
348-
+= snprintf(message + index, sizeof(message) - index, "%d ", node_id);
368+
int written
369+
= snprintf(message + index, sizeof(message) - index, "%d ", node_id);
370+
if (written < 0 || written >= (int)(sizeof(message) - index)) {
371+
sl_log_error(LOG_TAG,
372+
"Buffer overflow prevented while writing message\n");
373+
assert(false);
374+
return SL_STATUS_FAIL;
375+
}
376+
index += written;
349377
}
350378
}
351-
}
352-
sl_log_info(LOG_TAG, "%s\n", message);
353-
354-
return command_status;
355-
}
379+
sl_log_info(LOG_TAG, "%s\n", message);
356380

357-
static sl_status_t virtual_node_list()
358-
{
359-
zwave_nodemask_t node_list = {0};
381+
return command_status;
382+
}
360383

361-
sl_status_t command_status = zwapi_get_virtual_nodes(node_list);
362-
if (command_status == SL_STATUS_OK) {
363-
char message[MAXIMUM_MESSAGE_SIZE];
364-
uint16_t index = 0;
365-
index += snprintf(message + index,
366-
sizeof(message) - index,
367-
"Virtual NodeID List: ");
384+
static sl_status_t virtual_node_list()
385+
{
386+
zwave_nodemask_t node_list = {0};
387+
388+
sl_status_t command_status = zwapi_get_virtual_nodes(node_list);
389+
if (command_status == SL_STATUS_OK) {
390+
char message[MAXIMUM_MESSAGE_SIZE];
391+
uint16_t index = 0;
392+
int written = snprintf(message + index,
393+
sizeof(message) - index,
394+
"Virtual NodeID List: ");
395+
if (written < 0 || written >= (int)(sizeof(message) - index)) {
396+
sl_log_error(LOG_TAG,
397+
"Buffer overflow prevented while writing message\n");
398+
assert(false);
399+
return SL_STATUS_FAIL;
400+
}
401+
index += written;
402+
}
368403
for (zwave_node_id_t node_id = ZW_MIN_NODE_ID; node_id <= ZW_LR_MAX_NODE_ID;
369404
node_id++) {
370405
if (ZW_IS_NODE_IN_MASK(node_id, node_list) == 1) {
371406
index
372407
+= snprintf(message + index, sizeof(message) - index, "%d ", node_id);
408+
if (written < 0 || written >= (int)(sizeof(message) - index)) {
409+
sl_log_error(LOG_TAG,
410+
"Buffer overflow prevented while writing message\n");
411+
assert(false);
412+
return SL_STATUS_FAIL;
413+
}
414+
index += written;
373415
}
374416
}
375417
sl_log_info(LOG_TAG, "%s\n", message);

0 commit comments

Comments
 (0)