From: Xin Long > Sent: 19 January 2017 17:19 > This patch is to implement Sender-Side Procedures for the Add > Outgoing and Incoming Streams Request Parameter described in > rfc6525 section 5.1.5-5.1.6. > > It is also to add sockopt SCTP_ADD_STREAMS in rfc6525 section > 6.3.4 for users. ... > + out = params->sas_outstrms; > + in = params->sas_instrms; > + > + if (!out && !in) > + goto out; > + > + if (out) { > + __u16 nums = stream->outcnt + out; Make nums 'unsigned int', the code will be smaller and you can use the value for the overflow check. > + /* Check for overflow, can't use nums here */ > + if (stream->outcnt + out > SCTP_MAX_STREAM) > + goto out; > + > + /* Use ksize to check if stream array really needs to realloc */ > + if (ksize(stream->out) / sizeof(*stream->out) < nums) { > + struct sctp_stream_out *streamout; > + > + streamout = kcalloc(nums, sizeof(*streamout), > + GFP_KERNEL); > + if (!streamout) { > + retval = -ENOMEM; > + goto out; > + } > + > + memcpy(streamout, stream->out, > + sizeof(*streamout) * stream->outcnt); > + > + kfree(stream->out); > + stream->out = streamout; > + } Does kcalloc() zero the entire area, or just the length you ask for? If the latter you need to zero the rest here. ... David -- To unsubscribe from this list: send the line "unsubscribe linux-sctp" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html