res_fax.c: crash on framehook with no dsp in fax detect
authorScott Griepentrog <sgriepentrog@digium.com>
Thu, 19 Dec 2013 17:03:20 +0000 (17:03 +0000)
committerScott Griepentrog <sgriepentrog@digium.com>
Thu, 19 Dec 2013 17:03:20 +0000 (17:03 +0000)
In fax_detect_framehook() a null pointer reference can occur where a
voice frame is processed but no dsp is attached to the fax detection
structure.  The code block that rejects frames that detection cannot
be processed on is checking for dsp but falls through when it should
instead return, as this change implements.

(closes issue ASTERISK-22942)
Reported by: adomjan
Review: https://reviewboard.asterisk.org/r/3076/
........

Merged revisions 404351 from http://svn.asterisk.org/svn/asterisk/branches/11
........

Merged revisions 404352 from http://svn.asterisk.org/svn/asterisk/branches/12

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@404353 65c4cc65-6c06-0410-ace0-fbb531ad65f3

res/res_fax.c

index 55bd3c6..76fe0ca 100644 (file)
@@ -3412,7 +3412,7 @@ static struct ast_frame *fax_detect_framehook(struct ast_channel *chan, struct a
        case AST_FRAME_VOICE:
                /* we have no DSP this means we not detecting CNG */
                if (!faxdetect->dsp) {
-                       break;
+                       return f;
                }
                /* We can only process some formats*/
                switch (f->subclass.format.id) {