i40iw: Change mem_resources pointer to a u8
authorShiraz Saleem <shiraz.saleem@intel.com>
Mon, 22 Aug 2016 23:09:14 +0000 (18:09 -0500)
committerDoug Ledford <dledford@redhat.com>
Tue, 23 Aug 2016 16:40:19 +0000 (12:40 -0400)
iwdev->mem_resources is incorrectly defined as an unsigned
long instead of u8. As a result, the offset into the dynamic
allocated structures in i40iw_initialize_hw_resources() is
incorrectly calculated and would lead to writing of memory
regions outside of the allocated buffer.

Fixes: 8e06af711bf2 ("i40iw: add main, hdr, status")

Reported-by: Stefan Assmann <sassmann@redhat.com>
Signed-off-by: Mustafa Ismail <mustafa.ismail@intel.com>
Signed-off-by: Shiraz Saleem <shiraz.saleem@intel.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/hw/i40iw/i40iw.h

index b738acdb9b027705f11257c8ab25cbaeba652159..882f3ef2e4c7ac349375eab5701cb20ae6712ff7 100644 (file)
@@ -232,7 +232,7 @@ struct i40iw_device {
        struct i40e_client *client;
        struct i40iw_hw hw;
        struct i40iw_cm_core cm_core;
-       unsigned long *mem_resources;
+       u8 *mem_resources;
        unsigned long *allocated_qps;
        unsigned long *allocated_cqs;
        unsigned long *allocated_mrs;