diff options
author | tzafrir <tzafrir@5390a7c7-147a-4af0-8ec9-7488f05a26cb> | 2008-06-05 20:06:34 +0000 |
---|---|---|
committer | tzafrir <tzafrir@5390a7c7-147a-4af0-8ec9-7488f05a26cb> | 2008-06-05 20:06:34 +0000 |
commit | cc24db9d88f3fdc07d58917c8e8157cb6a2ae700 (patch) | |
tree | ca8f122f3d869c9c4fa6be1e985a30894e595076 /kernel/zaptel-base.c | |
parent | 6459cabd68f4d02d7f915fe404d135708ba14ac7 (diff) |
Fixes a potential panic in Xorcom Astribanks devices if disconnected
when a userspace program still holds a channel open. Regression from
changeset 4250 .
git-svn-id: http://svn.digium.com/svn/zaptel/branches/1.4@4348 5390a7c7-147a-4af0-8ec9-7488f05a26cb
Diffstat (limited to 'kernel/zaptel-base.c')
-rw-r--r-- | kernel/zaptel-base.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/kernel/zaptel-base.c b/kernel/zaptel-base.c index 2c6a22e..21fef71 100644 --- a/kernel/zaptel-base.c +++ b/kernel/zaptel-base.c @@ -2515,7 +2515,10 @@ static int zt_specchan_release(struct inode *node, struct file *file, int unit) close_channel(chans[unit]); if (chans[unit]->span && chans[unit]->span->close) res = chans[unit]->span->close(chans[unit]); - clear_bit(ZT_FLAGBIT_OPEN, &chans[unit]->flags); + + /* The channel might be destroyed on close: */ + if (chans[unit]) + clear_bit(ZT_FLAGBIT_OPEN, &chans[unit]->flags); } else res = -ENXIO; #ifndef LINUX26 |