@@ -118,22 +118,34 @@ void zwave_sl_log_nif_data(zwave_node_id_t node_id,
118118 char message [DEBUG_MESSAGE_BUFFER_LENGTH ];
119119 uint16_t index = 0 ;
120120
121- index += snprintf (message + index ,
122- sizeof (message ) - index ,
123- "NIF from NodeID: %d" ,
124- node_id );
125-
126- index += snprintf (message + index ,
127- sizeof (message ) - index ,
128- " Capability/Security bytes: 0x%02X 0x%02X - " ,
129- node_info -> listening_protocol ,
130- node_info -> optional_protocol );
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 ;
127+ }
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 ;
137+ }
138+ index += n ;
131139
132140 if (node_info -> optional_protocol
133141 & ZWAVE_NODE_INFO_OPTIONAL_PROTOCOL_CONTROLLER_MASK ) {
134- index += snprintf (message + index ,
135- sizeof (message ) - index ,
136- "The node is a controller - " );
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 ;
147+ }
148+ index += n ;
137149 } else {
138150 index += snprintf (message + index ,
139151 sizeof (message ) - index ,
@@ -142,7 +154,11 @@ void zwave_sl_log_nif_data(zwave_node_id_t node_id,
142154
143155 if (node_info -> listening_protocol
144156 & ZWAVE_NODE_INFO_LISTENING_PROTOCOL_LISTENING_MASK ) {
145- index += snprintf (message + index , sizeof (message ) - index , "AL mode - " );
157+ n = snprintf (message + index , sizeof (message ) - index , "AL mode - " );
158+ if (n < 0 || n >= (int )(sizeof (message ) - index )) {
159+ break ;
160+ }
161+ index += n ;
146162 } else if (node_info -> optional_protocol
147163 & (ZWAVE_NODE_INFO_OPTIONAL_PROTOCOL_SENSOR_1000MS_MASK
148164 | ZWAVE_NODE_INFO_OPTIONAL_PROTOCOL_SENSOR_250MS_MASK )) {
@@ -164,10 +180,14 @@ void zwave_sl_log_nif_data(zwave_node_id_t node_id,
164180 node_info -> specific_device_class );
165181
166182 for (uint8_t i = 0 ; i < node_info -> command_class_list_length ; i ++ ) {
167- index += snprintf (message + index ,
168- sizeof (message ) - index ,
169- "%02X " ,
170- node_info -> command_class_list [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 ;
189+ }
190+ index += n ;
171191 }
172192
173193 sl_log_debug (LOG_TAG , "%s" , message );
0 commit comments