Hi, I have been trying to trace a segfault in ip_frag_find which I am seeing in production for some time now.
In the following code in function ip_frag_find from ip_frag_internal.c, the lru is not being validated for being not null. At this point the table is guaranteed to have an entry in the tail queue? Is a null check on lru required here? /* * we found a free entry, check if we can use it. * If we run out of free entries in the table, then * check if we have a timed out entry to delete. */ } else if (free != NULL && tbl->max_entries <= tbl->use_entries) { lru = TAILQ_FIRST(&tbl->lru); if (max_cycles + lru->start < tms) { ip_frag_tbl_del(tbl, dr, lru); } else { free = NULL; IP_FRAG_TBL_STAT_UPDATE(&tbl->stat, fail_nospace, 1); } } Thanks, Padam