aboutsummaryrefslogtreecommitdiffstats
path: root/main/frame.c
diff options
context:
space:
mode:
authorrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2008-01-18 21:38:01 +0000
committerrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2008-01-18 21:38:01 +0000
commitcc1fcc753900c912d856f3f0498a4f7bfd8344a6 (patch)
tree5ad4a4412fd9a140bff03a47c4584789cbb0874c /main/frame.c
parent66d6ff5e4881f737297ca5dbff3261ed11aa2008 (diff)
Merged revisions 99081 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r99081 | russell | 2008-01-18 15:37:21 -0600 (Fri, 18 Jan 2008) | 9 lines Revert adding the packed attribute, as it really doesn't make sense why that would do any good. Fix the real bug, which is to do the check to see if the frame came from a translator at the beginning of ast_frame_free(), instead of at the end. This ensures that it always gets checked, even if none of the parts of the frame are malloc'd, and also ensures that we aren't looking at free'd memory in the case that it is a malloc'd frame. (closes issue #11792, reported by explidous, patched by me) ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@99082 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'main/frame.c')
-rw-r--r--main/frame.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/main/frame.c b/main/frame.c
index d46dd239c..3100636c5 100644
--- a/main/frame.c
+++ b/main/frame.c
@@ -321,6 +321,9 @@ static void frame_cache_cleanup(void *data)
void ast_frame_free(struct ast_frame *fr, int cache)
{
+ if (ast_test_flag(fr, AST_FRFLAG_FROM_TRANSLATOR))
+ ast_translate_frame_freed(fr);
+
if (!fr->mallocd)
return;
@@ -356,9 +359,6 @@ void ast_frame_free(struct ast_frame *fr, int cache)
#endif
ast_free(fr);
}
-
- if (ast_test_flag(fr, AST_FRFLAG_FROM_TRANSLATOR))
- ast_translate_frame_freed(fr);
}
/*!