Commit e56a7885 authored by Paolo 'Blaisorblade' Giarrusso's avatar Paolo 'Blaisorblade' Giarrusso Committed by Linus Torvalds

[PATCH] uml: networking - clear transport-specific structure

Pre-clear transport-specific private structure before passing it down.

In fact, I just got a slab corruption and kernel panic on exit because kfree()
was called on a pointer which probably was never allocated, BUT hadn't been
set to NULL by the driver.

As the code is full of such errors, I've decided for now to go the safe way
(we're talking about drivers), and to do the simple thing.  I'm also starting
to fix drivers, and already sent a patch for the daemon transport.
Signed-off-by: default avatarPaolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Cc: Jeff Dike <jdike@addtoit.com>
Signed-off-by: default avatarAndrew Morton <akpm@osdl.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent c42791b6
...@@ -317,6 +317,11 @@ static int eth_configure(int n, void *init, char *mac, ...@@ -317,6 +317,11 @@ static int eth_configure(int n, void *init, char *mac,
return 1; return 1;
} }
lp = dev->priv;
/* This points to the transport private data. It's still clear, but we
* must memset it to 0 *now*. Let's help the drivers. */
memset(lp, 0, size);
/* sysfs register */ /* sysfs register */
if (!driver_registered) { if (!driver_registered) {
platform_driver_register(&uml_net_driver); platform_driver_register(&uml_net_driver);
...@@ -358,7 +363,6 @@ static int eth_configure(int n, void *init, char *mac, ...@@ -358,7 +363,6 @@ static int eth_configure(int n, void *init, char *mac,
free_netdev(dev); free_netdev(dev);
return 1; return 1;
} }
lp = dev->priv;
/* lp.user is the first four bytes of the transport data, which /* lp.user is the first four bytes of the transport data, which
* has already been initialized. This structure assignment will * has already been initialized. This structure assignment will
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment