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