[asterisk-commits] rmudgett: trunk r349560 - in /trunk: ./ channels/chan_dahdi.c
SVN commits to the Asterisk project
asterisk-commits at lists.digium.com
Wed Jan 4 14:56:03 CST 2012
Author: rmudgett
Date: Wed Jan 4 14:55:59 2012
New Revision: 349560
URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=349560
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
........
Merged revisions 349558 from http://svn.asterisk.org/svn/asterisk/branches/1.8
........
Merged revisions 349559 from http://svn.asterisk.org/svn/asterisk/branches/10
Modified:
trunk/ (props changed)
trunk/channels/chan_dahdi.c
Propchange: trunk/
------------------------------------------------------------------------------
Binary property 'branch-10-merged' - no diff available.
Modified: trunk/channels/chan_dahdi.c
URL: http://svnview.digium.com/svn/asterisk/trunk/channels/chan_dahdi.c?view=diff&rev=349560&r1=349559&r2=349560
==============================================================================
--- trunk/channels/chan_dahdi.c (original)
+++ trunk/channels/chan_dahdi.c Wed Jan 4 14:55:59 2012
@@ -6655,7 +6655,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;
}
@@ -6701,7 +6701,7 @@
/* all supported options require data */
- if (!data || (datalen < 1)) {
+ if (!p || !data || (datalen < 1)) {
errno = EINVAL;
return -1;
}
@@ -6913,6 +6913,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);
@@ -7046,6 +7052,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