diff --git a/lib/kernel/if.cpp b/lib/kernel/if.cpp index fd7b21780..43e7dfdaa 100644 --- a/lib/kernel/if.cpp +++ b/lib/kernel/if.cpp @@ -48,7 +48,7 @@ int if_init(struct interface *i, struct rtnl_link *link) debug(LOG_IF | 3, "Created interface '%s'", if_name(i)); - int n = if_get_irqs(i); + int n = if_get_irqs(i); if (n > 0) debug(6, "Found %u IRQs for interface '%s'", n, if_name(i)); else @@ -166,6 +166,8 @@ struct interface * if_get_egress(struct sockaddr *sa, struct vlist *interfaces) if (!i) throw MemoryAllocationError(); + memset(i, 0, sizeof(struct interface)); + ret = if_init(i, link); if (ret) return nullptr;