diff options
author | russell <russell@f38db490-d61c-443f-a65b-d21fe96a405b> | 2008-01-31 23:14:57 +0000 |
---|---|---|
committer | russell <russell@f38db490-d61c-443f-a65b-d21fe96a405b> | 2008-01-31 23:14:57 +0000 |
commit | bcea796bc79eac532beefb327b70fb05e50bfa0d (patch) | |
tree | 841ec1037a02bbca8c15d492fd2ac66af63a4a45 /main/translate.c | |
parent | b1b73f307f691eb5b47a26d259f8a83e8c8c1546 (diff) |
Merged revisions 101601 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4
........
r101601 | russell | 2008-01-31 17:10:06 -0600 (Thu, 31 Jan 2008) | 12 lines
Fix a couple of places where ast_frfree() was not called on a frame that came
from a translator. This showed itself by g729 decoders not getting released.
Since the flag inside the translator frame never got unset by freeing the frame
to indicate it was no longer in use, the translators never got destroyed, and
thus the g729 licenses were not released.
(closes issue #11892)
Reported by: xrg
Patches:
11892.diff uploaded by russell (license 2)
Tested by: xrg, russell
........
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@101611 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'main/translate.c')
-rw-r--r-- | main/translate.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/main/translate.c b/main/translate.c index 1af88ecfb..6de444ff5 100644 --- a/main/translate.c +++ b/main/translate.c @@ -347,6 +347,8 @@ struct ast_frame *ast_translate(struct ast_trans_pvt *path, struct ast_frame *f, delivery = f->delivery; for ( ; out && p ; p = p->next) { framein(p, out); + if (out != f) + ast_frfree(out); out = p->t->frameout(p); } if (consume) |