Merged revisions 289426 via svnmerge from
authorRussell Bryant <russell@russellbryant.com>
Thu, 30 Sep 2010 15:40:10 +0000 (15:40 +0000)
committerRussell Bryant <russell@russellbryant.com>
Thu, 30 Sep 2010 15:40:10 +0000 (15:40 +0000)
https://origsvn.digium.com/svn/asterisk/branches/1.8

................
  r289426 | russell | 2010-09-30 10:39:45 -0500 (Thu, 30 Sep 2010) | 22 lines

  Merged revisions 289425 via svnmerge from
  https://origsvn.digium.com/svn/asterisk/branches/1.6.2

  ................
    r289425 | russell | 2010-09-30 10:37:29 -0500 (Thu, 30 Sep 2010) | 15 lines

    Merged revisions 289424 via svnmerge from
    https://origsvn.digium.com/svn/asterisk/branches/1.4

    ........
      r289424 | russell | 2010-09-30 10:34:29 -0500 (Thu, 30 Sep 2010) | 8 lines

      Fix a crash in app_sms.

      Since the data being passed to the generator callback is on the stack of the
      SMS() application, we must ensure that the generator is stopped before the
      application exits.

      ABE-2587
    ........
  ................
................

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

apps/app_sms.c

index aee2fa6..b5c471b 100644 (file)
@@ -2040,6 +2040,12 @@ static int sms_exec(struct ast_channel *chan, const char *data)
        }
        res = h.err;                            /* XXX */
 
+       /* 
+        * The SMS generator data is on the stack.  We _MUST_ make sure the generator
+        * is stopped before returning from this function.
+        */
+       ast_deactivate_generator(chan);
+
        sms_log(&h, '?');                       /* log incomplete message */
 done:
        return (res);