@@ -328,10 +328,14 @@ static void lowpan_list_entry_free(fragmenter_tx_list_t *list, fragmenter_tx_ent
328
328
ns_dyn_mem_free (entry );
329
329
}
330
330
331
- static void lowpan_list_free (fragmenter_tx_list_t * list )
331
+ static void lowpan_list_free (fragmenter_tx_list_t * list , bool fragment_buf_free )
332
332
{
333
333
while (!ns_list_is_empty (list )) {
334
334
fragmenter_tx_entry_t * entry = ns_list_get_first (list );
335
+ if (!fragment_buf_free ) {
336
+ //We can't free this pointer becuase it must be until interface is deleted
337
+ entry -> fragmenter_buf = NULL ;
338
+ }
335
339
lowpan_list_entry_free (list , entry );
336
340
}
337
341
}
@@ -388,11 +392,11 @@ int8_t lowpan_adaptation_interface_free(int8_t interface_id)
388
392
389
393
ns_list_remove (& fragmenter_interface_list , interface_ptr );
390
394
//free active tx process
391
- lowpan_list_free (& interface_ptr -> activeUnicastList );
395
+ lowpan_list_free (& interface_ptr -> activeUnicastList , false );
392
396
lowpan_active_buffer_state_reset (& interface_ptr -> active_broadcast_tx_buf );
393
397
394
398
//Free Indirect entry
395
- lowpan_list_free (& interface_ptr -> indirect_tx_queue );
399
+ lowpan_list_free (& interface_ptr -> indirect_tx_queue , true );
396
400
397
401
buffer_free_list (& interface_ptr -> directTxQueue );
398
402
@@ -413,13 +417,13 @@ int8_t lowpan_adaptation_interface_reset(int8_t interface_id)
413
417
}
414
418
415
419
//free active tx process
416
- lowpan_list_free (& interface_ptr -> activeUnicastList );
420
+ lowpan_list_free (& interface_ptr -> activeUnicastList , false );
417
421
lowpan_active_buffer_state_reset (& interface_ptr -> active_broadcast_tx_buf );
418
422
//Clean fragmented message flag
419
423
interface_ptr -> fragmenter_active = false;
420
424
421
425
//Free Indirect entry
422
- lowpan_list_free (& interface_ptr -> indirect_tx_queue );
426
+ lowpan_list_free (& interface_ptr -> indirect_tx_queue , true );
423
427
424
428
buffer_free_list (& interface_ptr -> directTxQueue );
425
429
0 commit comments