summaryrefslogtreecommitdiff
path: root/linux
diff options
context:
space:
mode:
authorMichael Hunold <devnull@localhost>2004-02-23 19:08:36 +0000
committerMichael Hunold <devnull@localhost>2004-02-23 19:08:36 +0000
commiteac35592452cdc3b7e6d9a0684d17c03fac94aba (patch)
tree9a0c3472d69b0c88aa52d0d4a3bcc580002f8cb0 /linux
parentab0450426593e64786e5cc21c4e711f59c851908 (diff)
downloadmediapointer-dvb-s2-eac35592452cdc3b7e6d9a0684d17c03fac94aba.tar.gz
mediapointer-dvb-s2-eac35592452cdc3b7e6d9a0684d17c03fac94aba.tar.bz2
viro@parcelfarce.linux.theplanet.co.uk: [netdrvr dvb/dvb_net] fixes
- Don't leave dvbnet->device[...] dangling after we free the sucker
Diffstat (limited to 'linux')
-rw-r--r--linux/drivers/media/dvb/dvb-core/dvb_net.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/linux/drivers/media/dvb/dvb-core/dvb_net.c b/linux/drivers/media/dvb/dvb-core/dvb_net.c
index 93bf8f699..2d4e65e91 100644
--- a/linux/drivers/media/dvb/dvb-core/dvb_net.c
+++ b/linux/drivers/media/dvb/dvb-core/dvb_net.c
@@ -582,7 +582,8 @@ static int dvb_net_add_if(struct dvb_net *dvbnet, u16 pid)
net->base_addr = pid;
if ((result = register_netdev(net)) < 0) {
- kfree(net);
+ dvbnet->device[if_num] = NULL;
+ free_netdev(net);
return result;
}
@@ -622,6 +623,7 @@ static int dvb_net_remove_if(struct dvb_net *dvbnet, int num)
flush_scheduled_work();
unregister_netdev(net);
dvbnet->state[num]=0;
+ dvbnet->device[num] = NULL;
free_netdev(net);
return 0;