[RESEND 1/2] sctp: export sctp_endpoint_{hold,put}() for use by seperate modules

From: Lee Jones
Date: Tue Dec 14 2021 - 16:57:47 EST


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 <vyasevich@xxxxxxxxx>
Cc: Neil Horman <nhorman@xxxxxxxxxxxxx>
Cc: Marcelo Ricardo Leitner <marcelo.leitner@xxxxxxxxx>
Cc: "David S. Miller" <davem@xxxxxxxxxxxxx>
Cc: Jakub Kicinski <kuba@xxxxxxxxxx>
Cc: lksctp developers <linux-sctp@xxxxxxxxxxxxxxx>
Cc: "H.P. Yarroll" <piggy@xxxxxxx>
Cc: Karl Knutson <karl@xxxxxxxxxxxxxxxxxxxx>
Cc: Jon Grimm <jgrimm@xxxxxxxxxx>
Cc: Xingang Guo <xingang.guo@xxxxxxxxx>
Cc: Hui Huang <hui.huang@xxxxxxxxx>
Cc: Sridhar Samudrala <sri@xxxxxxxxxx>
Cc: Daisy Chang <daisyc@xxxxxxxxxx>
Cc: Ryan Layer <rmlayer@xxxxxxxxxx>
Cc: Kevin Gao <kevin.gao@xxxxxxxxx>
Cc: linux-sctp@xxxxxxxxxxxxxxx
Cc: netdev@xxxxxxxxxxxxxxx
Signed-off-by: Lee Jones <lee.jones@xxxxxxxxxx>
---
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