diff options
| author | Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it> | 2006-01-19 04:42:53 +0300 | 
|---|---|---|
| committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-01-19 06:20:20 +0300 | 
| commit | c42791b6ec5453cd7910eac7bfdd88f27173f81c (patch) | |
| tree | f874b541bfacb27df2bcfdf6fe5823353d431635 /arch/um/drivers/daemon_user.c | |
| parent | 3b948068b84b9759cdf0965abf3074dcb9230e98 (diff) | |
| download | linux-c42791b6ec5453cd7910eac7bfdd88f27173f81c.tar.xz | |
[PATCH] uml: make daemon transport behave properly
Avoid uninitialized data in the daemon_data structure.  I used this transport
before doing proper setup before-hand, and I got some very nice SLAB
corruption due to freeing crap pointers.  So just make sure to clear
everything when appropriate.
Signed-off-by: Paolo 'Blaisorblade' Giarrusso <blaisorblade@yahoo.it>
Cc: Jeff Dike <jdike@addtoit.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'arch/um/drivers/daemon_user.c')
| -rw-r--r-- | arch/um/drivers/daemon_user.c | 6 | 
1 files changed, 6 insertions, 0 deletions
diff --git a/arch/um/drivers/daemon_user.c b/arch/um/drivers/daemon_user.c index 1bb085b2824d..c944265955e2 100644 --- a/arch/um/drivers/daemon_user.c +++ b/arch/um/drivers/daemon_user.c @@ -158,10 +158,16 @@ static void daemon_remove(void *data)  	struct daemon_data *pri = data;  	os_close_file(pri->fd); +	pri->fd = -1;  	os_close_file(pri->control); +	pri->control = -1; +  	kfree(pri->data_addr); +	pri->data_addr = NULL;  	kfree(pri->ctl_addr); +	pri->ctl_addr = NULL;  	kfree(pri->local_addr); +	pri->local_addr = NULL;  }  int daemon_user_write(int fd, void *buf, int len, struct daemon_data *pri)  | 
