Skip to content

Commit d19dfcf

Browse files
author
Atsushi Abe
authored
Fix potential use after free issues (#462)
1 parent 22edc44 commit d19dfcf

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

src/libltfs/ltfstrace.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -363,26 +363,26 @@ void ltfs_admin_function_trace_completed(uint32_t tid)
363363
static void ltfs_function_trace_destroy(void)
364364
{
365365
if (fs_tr_list) {
366-
struct filesystem_trace_list *fsitem;
367-
for (fsitem=fs_tr_list; fsitem != NULL; fsitem=fsitem->hh.next) {
366+
struct filesystem_trace_list *fsitem, *tmp;
367+
HASH_ITER(hh, fs_tr_list, fsitem, tmp) {
368368
destroy_mrsw(&fsitem->fn_entry->trace_lock);
369369
free(fsitem->fn_entry);
370370
free(fsitem);
371371
}
372372
fs_tr_list = NULL;
373373
}
374374
if (admin_tr_list) {
375-
struct admin_trace_list *aditem;
376-
for (aditem=admin_tr_list; aditem != NULL; aditem=aditem->hh.next) {
375+
struct admin_trace_list *aditem, *tmp;
376+
HASH_ITER(hh, admin_tr_list, aditem, tmp) {
377377
destroy_mrsw(&aditem->fn_entry->trace_lock);
378378
free(aditem->fn_entry);
379379
free(aditem);
380380
}
381381
admin_tr_list = NULL;
382382
}
383383
if (acomp) {
384-
struct admin_completed_function_trace *tailq_item;
385-
TAILQ_FOREACH (tailq_item, acomp, list) {
384+
struct admin_completed_function_trace *tailq_item, *tmp;
385+
TAILQ_FOREACH_SAFE(tailq_item, acomp, list, tmp) {
386386
destroy_mrsw(&tailq_item->trace_lock);
387387
free(tailq_item->fn_entry);
388388
free(tailq_item);

0 commit comments

Comments
 (0)