rds: fix an infoleak in rds_inc_info_copy
[pandora-kernel.git] / net / rds / recv.c
index 596689e..9e28c99 100644 (file)
@@ -34,6 +34,7 @@
 #include <linux/slab.h>
 #include <net/sock.h>
 #include <linux/in.h>
+#include <linux/export.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));
+                       msg->msg_namelen = sizeof(*sin);
                }
                break;
        }
@@ -542,5 +544,7 @@ void rds_inc_info_copy(struct rds_incoming *inc,
                minfo.fport = inc->i_hdr.h_dport;
        }
 
+       minfo.flags = 0;
+
        rds_info_copy(iter, &minfo, sizeof(minfo));
 }