[TIPC]: Stream socket can now send > 66000 bytes at a time
The stream socket send code was not initializing some required fields of the temporary msghdr structure it was utilizing; this is now fixed. A check has also been added to detect if a user illegally specifies a destination address when sending on an established stream connection. Signed-off-by: Allan Stephens <allan.stephens@windriver.com> Signed-off-by: Per Liden <per.liden@ericsson.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
committed by
David S. Miller
parent
29ede244cc
commit
eb5959c2bd
@@ -2,7 +2,7 @@
|
|||||||
* net/tipc/socket.c: TIPC socket API
|
* net/tipc/socket.c: TIPC socket API
|
||||||
*
|
*
|
||||||
* Copyright (c) 2001-2006, Ericsson AB
|
* Copyright (c) 2001-2006, Ericsson AB
|
||||||
* Copyright (c) 2004-2005, Wind River Systems
|
* Copyright (c) 2004-2006, Wind River Systems
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
*
|
*
|
||||||
* Redistribution and use in source and binary forms, with or without
|
* Redistribution and use in source and binary forms, with or without
|
||||||
@@ -629,6 +629,9 @@ static int send_stream(struct kiocb *iocb, struct socket *sock,
|
|||||||
return -ENOTCONN;
|
return -ENOTCONN;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (unlikely(m->msg_name))
|
||||||
|
return -EISCONN;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Send each iovec entry using one or more messages
|
* Send each iovec entry using one or more messages
|
||||||
*
|
*
|
||||||
@@ -641,6 +644,8 @@ static int send_stream(struct kiocb *iocb, struct socket *sock,
|
|||||||
curr_iovlen = m->msg_iovlen;
|
curr_iovlen = m->msg_iovlen;
|
||||||
my_msg.msg_iov = &my_iov;
|
my_msg.msg_iov = &my_iov;
|
||||||
my_msg.msg_iovlen = 1;
|
my_msg.msg_iovlen = 1;
|
||||||
|
my_msg.msg_flags = m->msg_flags;
|
||||||
|
my_msg.msg_name = NULL;
|
||||||
bytes_sent = 0;
|
bytes_sent = 0;
|
||||||
|
|
||||||
while (curr_iovlen--) {
|
while (curr_iovlen--) {
|
||||||
|
Reference in New Issue
Block a user