diff options
Diffstat (limited to 'net/sctp/sm_statefuns.c')
-rw-r--r-- | net/sctp/sm_statefuns.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/net/sctp/sm_statefuns.c b/net/sctp/sm_statefuns.c index 5aef4aafdfdc..f01b408508ff 100644 --- a/net/sctp/sm_statefuns.c +++ b/net/sctp/sm_statefuns.c | |||
@@ -3848,6 +3848,19 @@ sctp_disposition_t sctp_sf_eat_auth(const struct sctp_endpoint *ep, | |||
3848 | break; | 3848 | break; |
3849 | } | 3849 | } |
3850 | 3850 | ||
3851 | if (asoc->active_key_id != ntohs(auth_hdr->shkey_id)) { | ||
3852 | struct sctp_ulpevent *ev; | ||
3853 | |||
3854 | ev = sctp_ulpevent_make_authkey(asoc, ntohs(auth_hdr->shkey_id), | ||
3855 | SCTP_AUTH_NEWKEY, GFP_ATOMIC); | ||
3856 | |||
3857 | if (!ev) | ||
3858 | return -ENOMEM; | ||
3859 | |||
3860 | sctp_add_cmd_sf(commands, SCTP_CMD_EVENT_ULP, | ||
3861 | SCTP_ULPEVENT(ev)); | ||
3862 | } | ||
3863 | |||
3851 | return SCTP_DISPOSITION_CONSUME; | 3864 | return SCTP_DISPOSITION_CONSUME; |
3852 | } | 3865 | } |
3853 | 3866 | ||