diff options
| -rw-r--r-- | sys/netinet/ip_fw.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/netinet/ip_fw.c b/sys/netinet/ip_fw.c index 818e745ae244..e325436f6dc1 100644 --- a/sys/netinet/ip_fw.c +++ b/sys/netinet/ip_fw.c @@ -1852,6 +1852,7 @@ ip_fw_ctl(struct sockopt *sopt) switch (sopt->sopt_name) { case IP_FW_GET: size = 0 ; + s = splnet(); LIST_FOREACH(fcp, &ip_fw_chain_head, next) size += sizeof(struct ip_fw) ; if (ipfw_dyn_v) { @@ -1896,6 +1897,8 @@ ip_fw_ctl(struct sockopt *sopt) if (last != NULL) last->next = NULL ; } + splx(s); + error = sooptcopyout(sopt, buf, size); FREE(buf, M_TEMP); break; |
