From 9cead6b7f89547c0b1a323bb206042c212b9c232 Mon Sep 17 00:00:00 2001 From: dvossel Date: Thu, 23 Jun 2011 18:26:09 +0000 Subject: Merged revisions 324652 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.8 ................ r324652 | dvossel | 2011-06-23 13:23:21 -0500 (Thu, 23 Jun 2011) | 20 lines Merged revisions 324634 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.6.2 ................ r324634 | dvossel | 2011-06-23 13:18:46 -0500 (Thu, 23 Jun 2011) | 13 lines Merged revisions 324627 via svnmerge from https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r324627 | dvossel | 2011-06-23 13:16:52 -0500 (Thu, 23 Jun 2011) | 7 lines Addresses AST-2011-010, remote crash in IAX2 driver Thanks to twilson for identifying the issue and providing the patches. AST-2011-010 ........ ................ ................ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@324664 f38db490-d61c-443f-a65b-d21fe96a405b --- main/features.c | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) (limited to 'main/features.c') diff --git a/main/features.c b/main/features.c index 728118188..06ec1b698 100644 --- a/main/features.c +++ b/main/features.c @@ -3740,10 +3740,21 @@ int ast_bridge_call(struct ast_channel *chan,struct ast_channel *peer,struct ast break; case AST_CONTROL_OPTION: aoh = f->data.ptr; - /* Forward option Requests */ + /* Forward option Requests, but only ones we know are safe + * These are ONLY sent by chan_iax2 and I'm not convinced that + * they are useful. I haven't deleted them entirely because I + * just am not sure of the ramifications of removing them. */ if (aoh && aoh->flag == AST_OPTION_FLAG_REQUEST) { - ast_channel_setoption(other, ntohs(aoh->option), aoh->data, - f->datalen - sizeof(struct ast_option_header), 0); + switch (ntohs(aoh->option)) { + case AST_OPTION_TONE_VERIFY: + case AST_OPTION_TDD: + case AST_OPTION_RELAXDTMF: + case AST_OPTION_AUDIO_MODE: + case AST_OPTION_DIGIT_DETECT: + case AST_OPTION_FAX_DETECT: + ast_channel_setoption(other, ntohs(aoh->option), aoh->data, + f->datalen - sizeof(struct ast_option_header), 0); + } } break; } -- cgit v1.2.3