From: Terry Wilson Date: Thu, 8 Dec 2011 16:17:46 +0000 (+0000) Subject: Don't crash on INFO automon request with no channel X-Git-Tag: 1.6.2.21~6^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d5acfbf3ff5b418c5b698fbeb675073a43b0ebac;p=thirdparty%2Fasterisk.git Don't crash on INFO automon request with no channel AST-2011-014. When automon was enabled in features.conf, it was possible to crash Asterisk by sending an INFO request if no channel had been created yet. (closes issue ASTERISK-18805) git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.6.2@347530 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- diff --git a/channels/chan_sip.c b/channels/chan_sip.c index 310a69e655..243efe5120 100644 --- a/channels/chan_sip.c +++ b/channels/chan_sip.c @@ -17417,11 +17417,18 @@ static void handle_request_info(struct sip_pvt *p, struct sip_request *req) per device. I don't want incoming callers to record calls in my pbx. */ - /* first, get the feature string, if it exists */ + struct ast_call_feature *feat; int j; struct ast_frame f = { AST_FRAME_DTMF, }; + if (!p->owner) { /* not a PBX call */ + transmit_response(p, "481 Call leg/transaction does not exist", req); + sip_scheddestroy(p, DEFAULT_TRANS_TIMEOUT); + return; + } + + /* first, get the feature string, if it exists */ ast_rdlock_call_features(); feat = ast_find_call_feature("automon"); if (!feat || ast_strlen_zero(feat->exten)) {