net/sctp/diag.c for instance is built into its own separate module
(sctp_diag.ko) and requires the use of sctp_endpoint_{hold,put}() in
order to prevent a recently found use-after-free issue.
Cc: Vlad Yasevich <redacted>
Cc: Neil Horman <nhorman@tuxdriver.com>
Cc: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
Cc: "David S. Miller" <davem@davemloft.net>
Cc: Jakub Kicinski <kuba@kernel.org>
Cc: lksctp developers <redacted>
Cc: "H.P. Yarroll" <redacted>
Cc: Karl Knutson <redacted>
Cc: Jon Grimm <redacted>
Cc: Xingang Guo <redacted>
Cc: Hui Huang <redacted>
Cc: Sridhar Samudrala <redacted>
Cc: Daisy Chang <redacted>
Cc: Ryan Layer <redacted>
Cc: Kevin Gao <redacted>
Cc: linux-sctp@vger.kernel.org
Cc: netdev@vger.kernel.org
Signed-off-by: Lee Jones <redacted>
---
net/sctp/endpointola.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/net/sctp/endpointola.c b/net/sctp/endpointola.c
index 48c9c2c7602f7..7c36056f3a1b4 100644
--- a/net/sctp/endpointola.c
+++ b/net/sctp/endpointola.c
@@ -226,6 +226,7 @@ void sctp_endpoint_hold(struct sctp_endpoint *ep)
{
refcount_inc(&ep->base.refcnt);
}
+EXPORT_SYMBOL_GPL(sctp_endpoint_hold);
/* Release a reference to an endpoint and clean up if there are
* no more references.@@ -235,6 +236,7 @@ void sctp_endpoint_put(struct sctp_endpoint *ep)
if (refcount_dec_and_test(&ep->base.refcnt))
sctp_endpoint_destroy(ep);
}
+EXPORT_SYMBOL_GPL(sctp_endpoint_put);
/* Is this the endpoint we are looking for? */
struct sctp_endpoint *sctp_endpoint_is_match(struct sctp_endpoint *ep,
--
2.34.1.173.g76aa8bc2d0-goog