On Tue, Dec 12, 2017 at 04:33:03PM -0500, Paul Moore wrote: > On Tue, Dec 12, 2017 at 11:08 AM, Marcelo Ricardo Leitner > <marcelo.leit...@gmail.com> wrote: > > Hi Richard, > > > > On Mon, Nov 27, 2017 at 07:31:21PM +0000, Richard Haines wrote: > > ... > >> --- a/net/sctp/socket.c > >> +++ b/net/sctp/socket.c > >> @@ -3123,8 +3123,10 @@ static int sctp_setsockopt_maxseg(struct sock *sk, > >> char __user *optval, unsigned > >> > >> if (asoc) { > >> if (val == 0) { > >> + struct sctp_af *af = sp->pf->af; > >> val = asoc->pathmtu; > >> - val -= sp->pf->af->net_header_len; > >> + val -= af->ip_options_len(asoc->base.sk); > >> + val -= af->net_header_len; > >> val -= sizeof(struct sctphdr) + > >> sizeof(struct sctp_data_chunk); > >> } > > > > Right below here there is a call to sctp_frag_point(). That function > > also needs this tweak. > > > > Yes, we should simplify all these calculations. I have a patch to use > > sctp_frag_point on where it is currently recalculating it on > > sctp_datamsg_from_user(), but probably should include other places as > > well. > > FYI: Richard let me know he is occupied with another project at the > moment and likely won't be able to do another respin until next week > at the earliest.
Okay, thanks. I can do a follow-up patch if it helps. Marcelo