From 43c7396f155e57be5cda08b95ddc125ea3394812 Mon Sep 17 00:00:00 2001 From: russell Date: Fri, 4 Dec 2009 17:22:34 +0000 Subject: Merged revisions 233100 via svnmerge from https://origsvn.digium.com/svn/asterisk/trunk ................ r233100 | russell | 2009-12-04 11:18:22 -0600 (Fri, 04 Dec 2009) | 14 lines Merged revisions 233092 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r233092 | russell | 2009-12-04 11:12:47 -0600 (Fri, 04 Dec 2009) | 7 lines Only do frame payload check for HOLD frames. This code was added for helping to debug the source of invalid HOLD frames. However, a side effect of this is that it will incorrectly report errors for frames that have an integer payload. Make the check for this block specific to the HOLD frame case. ........ ................ git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.6.1@233122 f38db490-d61c-443f-a65b-d21fe96a405b --- main/channel.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'main') diff --git a/main/channel.c b/main/channel.c index 9f0ae7abe..af8ad7b3f 100644 --- a/main/channel.c +++ b/main/channel.c @@ -3012,14 +3012,14 @@ static struct ast_frame *__ast_read(struct ast_channel *chan, int dropaudio) ast_frame_dump(chan->name, f, "<<"); chan->fin = FRAMECOUNT_INC(chan->fin); - if (f && f->datalen == 0 && f->data.ptr) { + if (f && f->frametype == AST_FRAME_CONTROL && f->subclass == AST_CONTROL_HOLD && f->datalen == 0 && f->data.ptr) { /* fix invalid pointer */ f->data.ptr = NULL; #ifdef AST_DEVMODE - ast_log(LOG_ERROR, "Found frame with src '%s' on channel '%s' with datalen zero, but non-null data pointer!\n", f->src, chan->name); + ast_log(LOG_ERROR, "Found HOLD frame with src '%s' on channel '%s' with datalen zero, but non-null data pointer!\n", f->src, chan->name); ast_frame_dump(chan->name, f, "<<"); #else - ast_debug(3, "Found frame with src '%s' on channel '%s' with datalen zero, but non-null data pointer!\n", f->src, chan->name); + ast_debug(3, "Found HOLD frame with src '%s' on channel '%s' with datalen zero, but non-null data pointer!\n", f->src, chan->name); #endif } -- cgit v1.2.3