X-Git-Url: https://git.saurik.com/apple/xnu.git/blobdiff_plain/743b15655a24ee3fe9f458f383003e011db0558f..13fec9890cf095cc781fdf7b8917cb03bf32dd4c:/bsd/netinet6/ip6_forward.c diff --git a/bsd/netinet6/ip6_forward.c b/bsd/netinet6/ip6_forward.c index d857cc307..4cb3871ad 100644 --- a/bsd/netinet6/ip6_forward.c +++ b/bsd/netinet6/ip6_forward.c @@ -273,7 +273,14 @@ ip6_forward(m, srcrt, locked) state.ro = NULL; /* update at ipsec6_output_tunnel() */ state.dst = NULL; /* update at ipsec6_output_tunnel() */ + if (locked) + lck_mtx_unlock(ip6_mutex); error = ipsec6_output_tunnel(&state, sp, 0); + if (locked) { + lck_mtx_unlock(sadb_mutex); + lck_mtx_lock(ip6_mutex); + lck_mtx_lock(sadb_mutex); + } m = state.m; key_freesp(sp);