]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/blob - releases/2.6.32.3/drivers-net-usb-correct-code-taking-the-size-of-a-pointer.patch
4.14-stable patches
[thirdparty/kernel/stable-queue.git] / releases / 2.6.32.3 / drivers-net-usb-correct-code-taking-the-size-of-a-pointer.patch
1 From 6057912d7baad31be9819518674ffad349a065b1 Mon Sep 17 00:00:00 2001
2 From: Julia Lawall <julia@diku.dk>
3 Date: Sun, 13 Dec 2009 05:47:04 +0000
4 Subject: drivers/net/usb: Correct code taking the size of a pointer
5
6 From: Julia Lawall <julia@diku.dk>
7
8 commit 6057912d7baad31be9819518674ffad349a065b1 upstream.
9
10 sizeof(dev->dev_addr) is the size of a pointer. A few lines above, the
11 size of this field is obtained using netdev->addr_len for a call to memcpy,
12 so do the same here.
13
14 A simplified version of the semantic patch that finds this problem is as
15 follows: (http://coccinelle.lip6.fr/)
16
17 // <smpl>
18 @@
19 expression *x;
20 expression f;
21 type T;
22 @@
23
24 *f(...,(T)x,...)
25 // </smpl>
26
27 Signed-off-by: Julia Lawall <julia@diku.dk>
28 Signed-off-by: David S. Miller <davem@davemloft.net>
29 Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
30
31 --- a/drivers/net/usb/rtl8150.c
32 +++ b/drivers/net/usb/rtl8150.c
33 @@ -324,7 +324,7 @@ static int rtl8150_set_mac_address(struct net_device *netdev, void *p)
34 dbg("%02X:", netdev->dev_addr[i]);
35 dbg("%02X\n", netdev->dev_addr[i]);
36 /* Set the IDR registers. */
37 - set_registers(dev, IDR, sizeof(netdev->dev_addr), netdev->dev_addr);
38 + set_registers(dev, IDR, netdev->addr_len, netdev->dev_addr);
39 #ifdef EEPROM_WRITE
40 {
41 u8 cr;