summaryrefslogtreecommitdiff
path: root/debian/patches/libdde_addr_fix.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/libdde_addr_fix.patch')
-rw-r--r--debian/patches/libdde_addr_fix.patch37
1 files changed, 37 insertions, 0 deletions
diff --git a/debian/patches/libdde_addr_fix.patch b/debian/patches/libdde_addr_fix.patch
new file mode 100644
index 00000000..7d6af794
--- /dev/null
+++ b/debian/patches/libdde_addr_fix.patch
@@ -0,0 +1,37 @@
+commit 0c27922e4933ceb86644f4a9b1af212ffe5aad75
+Author: Eric Dumazet <eric.dumazet@gmail.com>
+Date: Mon Jun 8 03:49:24 2009 +0000
+
+ net: dev_addr_init() fix
+
+ commit f001fde5eadd915f4858d22ed70d7040f48767cf
+ (net: introduce a list of device addresses dev_addr_list (v6))
+ added one regression Vegard Nossum found in its testings.
+
+ With kmemcheck help, Vegard found some uninitialized memory
+ was read and reported to user, potentialy leaking kernel data.
+ ( thread can be found on http://lkml.org/lkml/2009/5/30/177 )
+
+ dev_addr_init() incorrectly uses sizeof() operator. We were
+ initializing one byte instead of MAX_ADDR_LEN bytes.
+
+ Reported-by: Vegard Nossum <vegard.nossum@gmail.com>
+ Signed-off-by: Eric Dumazet <eric.dumazet@gmail.com>
+ Acked-by: Jiri Pirko <jpirko@redhat.com>
+ Signed-off-by: David S. Miller <davem@davemloft.net>
+
+diff --git a/net/core/dev.c b/net/core/dev.c
+index 4913089..81b392e 100644
+--- a/libdde_linux26/lib/src/net/core/dev.c
++++ b/libdde_linux26/lib/src/net/core/dev.c
+@@ -3577,8 +3577,8 @@ static int dev_addr_init(struct net_device *dev)
+ /* rtnl_mutex must be held here */
+
+ INIT_LIST_HEAD(&dev->dev_addr_list);
+- memset(addr, 0, sizeof(*addr));
+- err = __hw_addr_add(&dev->dev_addr_list, NULL, addr, sizeof(*addr),
++ memset(addr, 0, sizeof(addr));
++ err = __hw_addr_add(&dev->dev_addr_list, NULL, addr, sizeof(addr),
+ NETDEV_HW_ADDR_T_LAN);
+ if (!err) {
+ /*