From a10f93404d26d8abee3aec5b3246718ee4cdfe0a Mon Sep 17 00:00:00 2001 From: Russell Bryant Date: Fri, 4 Dec 2009 17:12:47 +0000 Subject: [PATCH] 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: https://origsvn.digium.com/svn/asterisk/branches/1.4@233092 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- main/channel.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/main/channel.c b/main/channel.c index bfbe49f6ff..75d4f72dbf 100644 --- a/main/channel.c +++ b/main/channel.c @@ -2513,15 +2513,15 @@ 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) { + if (f && f->frametype == AST_FRAME_CONTROL && f->subclass == AST_CONTROL_HOLD && f->datalen == 0 && f->data) { /* fix invalid pointer */ f->data = 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 if (option_debug > 2) { - ast_log(LOG_DEBUG, "Found frame with src '%s' on channel '%s' with datalen zero, but non-null data pointer!\n", f->src, chan->name); + ast_log(LOG_DEBUG, "Found HOLD frame with src '%s' on channel '%s' with datalen zero, but non-null data pointer!\n", f->src, chan->name); } #endif } -- 2.47.2