[SCSI] libfcoe: VN2VN connection setup causing stack memory corruption.
authorKiran Patil <kiran.patil@intel.com>
Sat, 9 Oct 2010 00:12:41 +0000 (17:12 -0700)
committerJames Bottomley <James.Bottomley@suse.de>
Mon, 25 Oct 2010 20:11:38 +0000 (15:11 -0500)
Fix: When FIP frame is received, function fcoe_ctlr_vn_recv calls function
fcoe_ctlr_vn_parse which does memset for addr (&buf.rdata) which leads to
memory corruption. Code was trying to treat "buf" as struct but it was defined
as union. Fix is to change from union to struct for "buf" in function fcoe_ctlr_vn_recv.

Technical Details: N/A

Signed-off-by: Kiran Patil <kiran.patil@intel.com>
Acked-by: Joe Eykholt <jeykholt@cisco.com>
Signed-off-by: Robert Love <robert.w.love@intel.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
drivers/scsi/fcoe/libfcoe.c

index aa503d83092a09eb0b69ea1ca76fd227807bd39a..bc17c71232023c7d3b830a541df976de7146a72c 100644 (file)
@@ -2296,7 +2296,7 @@ static int fcoe_ctlr_vn_recv(struct fcoe_ctlr *fip, struct sk_buff *skb)
 {
        struct fip_header *fiph;
        enum fip_vn2vn_subcode sub;
-       union {
+       struct {
                struct fc_rport_priv rdata;
                struct fcoe_rport frport;
        } buf;