[asterisk-commits] rmudgett: branch 1.8 r349558 - /branches/1.8/channels/chan_dahdi.c
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Wed Jan 4 14:46:25 CST 2012
Author: rmudgett
Date: Wed Jan 4 14:46:20 2012
New Revision: 349558
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=349558
Log:
Fix segfault in chan_dahdi for CHANNEL(dahdi_span) evaluation on hangup.
* Added NULL private pointer checks in the following chan_dahdi channel
callbacks: dahdi_func_read(), dahdi_func_write(), dahdi_setoption(), and
dahdi_queryoption().
(closes issue ASTERISK-19142)
Reported by: Diego Aguirre
Tested by: rmudgett
Modified:
branches/1.8/channels/chan_dahdi.c
Modified: branches/1.8/channels/chan_dahdi.c
URL: http://svnview.digium.com/svn/asterisk/branches/1.8/channels/chan_dahdi.c?view=diff&rev=349558&r1=349557&r2=349558
==============================================================================
--- branches/1.8/channels/chan_dahdi.c (original)
+++ branches/1.8/channels/chan_dahdi.c Wed Jan 4 14:46:20 2012
@@ -6588,7 +6588,7 @@
struct dahdi_pvt *p = chan->tech_pvt;
/* all supported options require data */
- if (!data || (*datalen < 1)) {
+ if (!p || !data || (*datalen < 1)) {
errno = EINVAL;
return -1;
}
@@ -6634,7 +6634,7 @@
/* all supported options require data */
- if (!data || (datalen < 1)) {
+ if (!p || !data || (datalen < 1)) {
errno = EINVAL;
return -1;
}
@@ -6846,6 +6846,12 @@
{
struct dahdi_pvt *p = chan->tech_pvt;
int res = 0;
+
+ if (!p) {
+ /* No private structure! */
+ *buf = '\0';
+ return -1;
+ }
if (!strcasecmp(data, "rxgain")) {
ast_mutex_lock(&p->lock);
@@ -6979,6 +6985,11 @@
{
struct dahdi_pvt *p = chan->tech_pvt;
int res = 0;
+
+ if (!p) {
+ /* No private structure! */
+ return -1;
+ }
if (!strcasecmp(data, "buffers")) {
int num_bufs, policy;
More information about the asterisk-commits
mailing list