summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTzafrir Cohen <tzafrir.cohen@xorcom.com>2012-01-25 21:18:25 +0000
committerTzafrir Cohen <tzafrir.cohen@xorcom.com>2012-01-25 21:18:25 +0000
commit75acff0164c908083b32cc4401ce4f9d7917e7f2 (patch)
tree7ebf5833a6cafc630c2e94992a4ffd2fb9ecb545
parent078afd65fbae57261f7c4880747e6c5a71cf2a1c (diff)
A channel-less span should not crash dahdi
* Always check span->channels before accessing span->chans[0] * Clean one dev_notice() text that accessed span->chans[0] * Check channels in basechan_show() sysfs attribute Signed-off-by: Oron Peled <oron.peled@xorcom.com> Acked-by: Tzafrir Cohen <tzafrir.cohen@xorcom.com> git-svn-id: http://svn.asterisk.org/svn/dahdi/linux/trunk@10450 a0bf4364-ded3-4de4-8d8a-66a801d63aff
-rw-r--r--drivers/dahdi/dahdi-base.c5
-rw-r--r--drivers/dahdi/dahdi-sysfs.c2
2 files changed, 4 insertions, 3 deletions
diff --git a/drivers/dahdi/dahdi-base.c b/drivers/dahdi/dahdi-base.c
index 3886e69..eb19188 100644
--- a/drivers/dahdi/dahdi-base.c
+++ b/drivers/dahdi/dahdi-base.c
@@ -6882,9 +6882,8 @@ static int _dahdi_assign_span(struct dahdi_span *span, unsigned int spanno,
if (test_bit(DAHDI_FLAGBIT_REGISTERED, &span->flags)) {
dev_notice(span_device(span),
- "local span %d is already assigned span %d "
- "with base channel %d\n", local_spanno(span), span->spanno,
- span->chans[0]->channo);
+ "local span %d is already assigned span %d\n",
+ local_spanno(span), span->spanno);
return -EINVAL;
}
diff --git a/drivers/dahdi/dahdi-sysfs.c b/drivers/dahdi/dahdi-sysfs.c
index c638104..3b9784d 100644
--- a/drivers/dahdi/dahdi-sysfs.c
+++ b/drivers/dahdi/dahdi-sysfs.c
@@ -250,6 +250,8 @@ static BUS_ATTR_READER(basechan_show, dev, buf)
struct dahdi_span *span;
span = dev_to_span(dev);
+ if (!span->channels)
+ return -ENODEV;
return sprintf(buf, "%d\n", span->chans[0]->channo);
}