diff options
Diffstat (limited to 'net')
-rw-r--r-- | net/sctp/socket.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/net/sctp/socket.c b/net/sctp/socket.c index 44f2acb3d433..6140471efd4b 100644 --- a/net/sctp/socket.c +++ b/net/sctp/socket.c @@ -9225,6 +9225,16 @@ static int sctp_sock_migrate(struct sock *oldsk, struct sock *newsk, if (err) return err; + /* New ep's auth_hmacs should be set if old ep's is set, in case + * that net->sctp.auth_enable has been changed to 0 by users and + * new ep's auth_hmacs couldn't be set in sctp_endpoint_init(). + */ + if (oldsp->ep->auth_hmacs) { + err = sctp_auth_init_hmacs(newsp->ep, GFP_KERNEL); + if (err) + return err; + } + /* Move any messages in the old socket's receive queue that are for the * peeled off association to the new socket's receive queue. */ |