git.openpandora.org
/
pandora-kernel.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
rds: fix an infoleak in rds_inc_info_copy
[pandora-kernel.git]
/
net
/
rds
/
recv.c
diff --git
a/net/rds/recv.c
b/net/rds/recv.c
index
596689e
..
9e28c99
100644
(file)
--- a/
net/rds/recv.c
+++ b/
net/rds/recv.c
@@
-34,6
+34,7
@@
#include <linux/slab.h>
#include <net/sock.h>
#include <linux/in.h>
#include <linux/slab.h>
#include <net/sock.h>
#include <linux/in.h>
+#include <linux/export.h>
#include "rds.h"
#include "rds.h"
@@
-484,6
+485,7
@@
int rds_recvmsg(struct kiocb *iocb, struct socket *sock, struct msghdr *msg,
sin->sin_port = inc->i_hdr.h_sport;
sin->sin_addr.s_addr = inc->i_saddr;
memset(sin->sin_zero, 0, sizeof(sin->sin_zero));
sin->sin_port = inc->i_hdr.h_sport;
sin->sin_addr.s_addr = inc->i_saddr;
memset(sin->sin_zero, 0, sizeof(sin->sin_zero));
+ msg->msg_namelen = sizeof(*sin);
}
break;
}
}
break;
}
@@
-542,5
+544,7
@@
void rds_inc_info_copy(struct rds_incoming *inc,
minfo.fport = inc->i_hdr.h_dport;
}
minfo.fport = inc->i_hdr.h_dport;
}
+ minfo.flags = 0;
+
rds_info_copy(iter, &minfo, sizeof(minfo));
}
rds_info_copy(iter, &minfo, sizeof(minfo));
}