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