mirror of
https://github.com/opnsense/src.git
synced 2026-05-28 04:12:45 -04:00
Move if_get_counter initialization from if_attach into if_alloc.
Also, initialize all counters before ifnet will become available in the system. This fixes possible access to uninitialized ifned fields. PR: 194550
This commit is contained in:
parent
381fd7619b
commit
61dc434406
1 changed files with 2 additions and 6 deletions
|
|
@ -467,11 +467,10 @@ if_alloc(u_char type)
|
|||
ifq_init(&ifp->if_snd, ifp);
|
||||
|
||||
refcount_init(&ifp->if_refcount, 1); /* Index reference. */
|
||||
ifnet_setbyindex(ifp->if_index, ifp);
|
||||
|
||||
for (int i = 0; i < IFCOUNTERS; i++)
|
||||
ifp->if_counters[i] = counter_u64_alloc(M_WAITOK);
|
||||
|
||||
ifp->if_get_counter = if_get_counter_default;
|
||||
ifnet_setbyindex(ifp->if_index, ifp);
|
||||
return (ifp);
|
||||
}
|
||||
|
||||
|
|
@ -674,9 +673,6 @@ if_attach_internal(struct ifnet *ifp, int vmove)
|
|||
ifp->if_qflush = if_qflush;
|
||||
}
|
||||
|
||||
if (ifp->if_get_counter == NULL)
|
||||
ifp->if_get_counter = if_get_counter_default;
|
||||
|
||||
if (!vmove) {
|
||||
#ifdef MAC
|
||||
mac_ifnet_create(ifp);
|
||||
|
|
|
|||
Loading…
Reference in a new issue