mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-28 02:32:09 -04:00
Fix sctp privilege elevation (CVE-2006-3745)
sctp_make_abort_user() now takes the msg_len along with the msg so that we don't have to recalculate the bytes in iovec. It also uses memcpy_fromiovec() so that we don't go beyond the length allocated. It is good to have this fix even if verify_iovec() is fixed to return error on overflow. Signed-off-by: Sridhar Samudrala <[email protected]> Signed-off-by: Greg Kroah-Hartman <[email protected]>
This commit is contained in:
parent
ac185bdc02
commit
c164a9ba0a
5 changed files with 23 additions and 53 deletions
|
|
@ -404,19 +404,6 @@ static inline int sctp_list_single_entry(struct list_head *head)
|
|||
return ((head->next != head) && (head->next == head->prev));
|
||||
}
|
||||
|
||||
/* Calculate the size (in bytes) occupied by the data of an iovec. */
|
||||
static inline size_t get_user_iov_size(struct iovec *iov, int iovlen)
|
||||
{
|
||||
size_t retval = 0;
|
||||
|
||||
for (; iovlen > 0; --iovlen) {
|
||||
retval += iov->iov_len;
|
||||
iov++;
|
||||
}
|
||||
|
||||
return retval;
|
||||
}
|
||||
|
||||
/* Generate a random jitter in the range of -50% ~ +50% of input RTO. */
|
||||
static inline __s32 sctp_jitter(__u32 rto)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -221,8 +221,7 @@ struct sctp_chunk *sctp_make_abort_no_data(const struct sctp_association *,
|
|||
const struct sctp_chunk *,
|
||||
__u32 tsn);
|
||||
struct sctp_chunk *sctp_make_abort_user(const struct sctp_association *,
|
||||
const struct sctp_chunk *,
|
||||
const struct msghdr *);
|
||||
const struct msghdr *, size_t msg_len);
|
||||
struct sctp_chunk *sctp_make_abort_violation(const struct sctp_association *,
|
||||
const struct sctp_chunk *,
|
||||
const __u8 *,
|
||||
|
|
|
|||
Loading…
Reference in a new issue