aboutsummaryrefslogtreecommitdiffstats
path: root/net/sctp/socket.c
diff options
context:
space:
mode:
authorJoe Perches <joe@perches.com>2011-05-12 07:27:20 -0400
committerDavid S. Miller <davem@davemloft.net>2011-05-12 17:30:49 -0400
commit517aa0bcda9b092a4c3fab7bf93f0cebe372ece0 (patch)
tree28edc7ce3bd99465ae0eca4294ebd98dd4bbdb25 /net/sctp/socket.c
parent1769192a3c50778e03352a3d95faec830d47ba55 (diff)
sctp: sctp_sendmsg: Don't initialize default_sinfo
This variable only needs initialization when cmsgs.info is NULL. Use memset to ensure padding is also zeroed so kernel doesn't leak any data. Signed-off-by: Joe Perches <joe@perches.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/sctp/socket.c')
-rw-r--r--net/sctp/socket.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/net/sctp/socket.c b/net/sctp/socket.c
index 33d9ee629b4e..d4b8db177e27 100644
--- a/net/sctp/socket.c
+++ b/net/sctp/socket.c
@@ -1496,7 +1496,7 @@ SCTP_STATIC int sctp_sendmsg(struct kiocb *iocb, struct sock *sk,
1496 struct sctp_chunk *chunk; 1496 struct sctp_chunk *chunk;
1497 union sctp_addr to; 1497 union sctp_addr to;
1498 struct sockaddr *msg_name = NULL; 1498 struct sockaddr *msg_name = NULL;
1499 struct sctp_sndrcvinfo default_sinfo = { 0 }; 1499 struct sctp_sndrcvinfo default_sinfo;
1500 struct sctp_sndrcvinfo *sinfo; 1500 struct sctp_sndrcvinfo *sinfo;
1501 struct sctp_initmsg *sinit; 1501 struct sctp_initmsg *sinit;
1502 sctp_assoc_t associd = 0; 1502 sctp_assoc_t associd = 0;
@@ -1760,6 +1760,7 @@ SCTP_STATIC int sctp_sendmsg(struct kiocb *iocb, struct sock *sk,
1760 /* If the user didn't specify SNDRCVINFO, make up one with 1760 /* If the user didn't specify SNDRCVINFO, make up one with
1761 * some defaults. 1761 * some defaults.
1762 */ 1762 */
1763 memset(&default_sinfo, 0, sizeof(default_sinfo));
1763 default_sinfo.sinfo_stream = asoc->default_stream; 1764 default_sinfo.sinfo_stream = asoc->default_stream;
1764 default_sinfo.sinfo_flags = asoc->default_flags; 1765 default_sinfo.sinfo_flags = asoc->default_flags;
1765 default_sinfo.sinfo_ppid = asoc->default_ppid; 1766 default_sinfo.sinfo_ppid = asoc->default_ppid;