Loading net/sctp/socket.c +8 −14 Original line number Diff line number Diff line Loading @@ -4382,33 +4382,27 @@ static int sctp_setsockopt_ecn_supported(struct sock *sk, } static int sctp_setsockopt_pf_expose(struct sock *sk, char __user *optval, struct sctp_assoc_value *params, unsigned int optlen) { struct sctp_assoc_value params; struct sctp_association *asoc; int retval = -EINVAL; if (optlen != sizeof(params)) goto out; if (copy_from_user(¶ms, optval, optlen)) { retval = -EFAULT; if (optlen != sizeof(*params)) goto out; } if (params.assoc_value > SCTP_PF_EXPOSE_MAX) if (params->assoc_value > SCTP_PF_EXPOSE_MAX) goto out; asoc = sctp_id2assoc(sk, params.assoc_id); if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC && asoc = sctp_id2assoc(sk, params->assoc_id); if (!asoc && params->assoc_id != SCTP_FUTURE_ASSOC && sctp_style(sk, UDP)) goto out; if (asoc) asoc->pf_expose = params.assoc_value; asoc->pf_expose = params->assoc_value; else sctp_sk(sk)->pf_expose = params.assoc_value; sctp_sk(sk)->pf_expose = params->assoc_value; retval = 0; out: Loading Loading @@ -4632,7 +4626,7 @@ static int sctp_setsockopt(struct sock *sk, int level, int optname, retval = sctp_setsockopt_ecn_supported(sk, kopt, optlen); break; case SCTP_EXPOSE_POTENTIALLY_FAILED_STATE: retval = sctp_setsockopt_pf_expose(sk, optval, optlen); retval = sctp_setsockopt_pf_expose(sk, kopt, optlen); break; default: retval = -ENOPROTOOPT; Loading Loading
net/sctp/socket.c +8 −14 Original line number Diff line number Diff line Loading @@ -4382,33 +4382,27 @@ static int sctp_setsockopt_ecn_supported(struct sock *sk, } static int sctp_setsockopt_pf_expose(struct sock *sk, char __user *optval, struct sctp_assoc_value *params, unsigned int optlen) { struct sctp_assoc_value params; struct sctp_association *asoc; int retval = -EINVAL; if (optlen != sizeof(params)) goto out; if (copy_from_user(¶ms, optval, optlen)) { retval = -EFAULT; if (optlen != sizeof(*params)) goto out; } if (params.assoc_value > SCTP_PF_EXPOSE_MAX) if (params->assoc_value > SCTP_PF_EXPOSE_MAX) goto out; asoc = sctp_id2assoc(sk, params.assoc_id); if (!asoc && params.assoc_id != SCTP_FUTURE_ASSOC && asoc = sctp_id2assoc(sk, params->assoc_id); if (!asoc && params->assoc_id != SCTP_FUTURE_ASSOC && sctp_style(sk, UDP)) goto out; if (asoc) asoc->pf_expose = params.assoc_value; asoc->pf_expose = params->assoc_value; else sctp_sk(sk)->pf_expose = params.assoc_value; sctp_sk(sk)->pf_expose = params->assoc_value; retval = 0; out: Loading Loading @@ -4632,7 +4626,7 @@ static int sctp_setsockopt(struct sock *sk, int level, int optname, retval = sctp_setsockopt_ecn_supported(sk, kopt, optlen); break; case SCTP_EXPOSE_POTENTIALLY_FAILED_STATE: retval = sctp_setsockopt_pf_expose(sk, optval, optlen); retval = sctp_setsockopt_pf_expose(sk, kopt, optlen); break; default: retval = -ENOPROTOOPT; Loading