git://git.onelab.eu
/
linux-2.6.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git]
/
arch
/
um
/
drivers
/
daemon_user.c
diff --git
a/arch/um/drivers/daemon_user.c
b/arch/um/drivers/daemon_user.c
index
cf15b4a
..
c944265
100644
(file)
--- a/
arch/um/drivers/daemon_user.c
+++ b/
arch/um/drivers/daemon_user.c
@@
-98,7
+98,7
@@
static int connect_to_switch(struct daemon_data *pri)
printk("daemon_open : control setup request failed, err = %d\n",
-n);
err = -ENOTCONN;
printk("daemon_open : control setup request failed, err = %d\n",
-n);
err = -ENOTCONN;
- goto out
;
+ goto out
_free;
}
n = os_read_file(pri->control, sun, sizeof(*sun));
}
n = os_read_file(pri->control, sun, sizeof(*sun));
@@
-106,12
+106,14
@@
static int connect_to_switch(struct daemon_data *pri)
printk("daemon_open : read of data socket failed, err = %d\n",
-n);
err = -ENOTCONN;
printk("daemon_open : read of data socket failed, err = %d\n",
-n);
err = -ENOTCONN;
- goto out_
close;
+ goto out_
free;
}
pri->data_addr = sun;
return(fd);
}
pri->data_addr = sun;
return(fd);
+ out_free:
+ kfree(sun);
out_close:
os_close_file(fd);
out:
out_close:
os_close_file(fd);
out:
@@
-156,10
+158,16
@@
static void daemon_remove(void *data)
struct daemon_data *pri = data;
os_close_file(pri->fd);
struct daemon_data *pri = data;
os_close_file(pri->fd);
+ pri->fd = -1;
os_close_file(pri->control);
os_close_file(pri->control);
- if(pri->data_addr != NULL) kfree(pri->data_addr);
- if(pri->ctl_addr != NULL) kfree(pri->ctl_addr);
- if(pri->local_addr != NULL) kfree(pri->local_addr);
+ 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)
}
int daemon_user_write(int fd, void *buf, int len, struct daemon_data *pri)