| Summary: | sysctl_ifmalisti: missing IF_ADDR_RUNLOCK if rtsock_msg_buffer returns error | ||
|---|---|---|---|
| Product: | Base System | Reporter: | tony.cai1982 |
| Component: | kern | Assignee: | Mark Johnston <markj> |
| Status: | Closed FIXED | ||
| Severity: | Affects Only Me | CC: | markj, ngie |
| Priority: | --- | Keywords: | patch |
| Version: | CURRENT | ||
| Hardware: | Any | ||
| OS: | Any | ||
A commit references this bug: Author: markj Date: Tue Nov 15 19:23:49 UTC 2016 New revision: 308694 URL: https://svnweb.freebsd.org/changeset/base/308694 Log: Plug a lock leak in sysctl_ifmalist(). Fix style in the local variable declarations. PR: 214542 MFC after: 1 week Changes: head/sys/net/rtsock.c A commit references this bug: Author: markj Date: Tue Nov 22 17:42:59 UTC 2016 New revision: 309015 URL: https://svnweb.freebsd.org/changeset/base/309015 Log: MFC r308694: Plug a lock leak in sysctl_ifmalist(). PR: 214542 Changes: _U stable/11/ stable/11/sys/net/rtsock.c |
diff --git a/sys/net/rtsock.c b/sys/net/rtsock.c index ca89002..47777c3 100644 --- a/sys/net/rtsock.c +++ b/sys/net/rtsock.c @@ -1798,8 +1798,10 @@ sysctl_ifmalist(int af, struct walkarg *w) (ifma->ifma_addr->sa_family != AF_LINK) ? ifma->ifma_lladdr : NULL; error = rtsock_msg_buffer(RTM_NEWMADDR, &info, w, &len); - if (error != 0) + if (error != 0) { + IF_ADDR_RUNLOCK(ifp); goto done; + } if (w->w_req && w->w_tmem) { struct ifma_msghdr *ifmam;