[svn-commits] russell: trunk r99082 - in /trunk: ./ include/asterisk/translate.h main/frame.c

SVN commits to the Digium repositories svn-commits at lists.digium.com
Fri Jan 18 15:38:02 CST 2008


Author: russell
Date: Fri Jan 18 15:38:01 2008
New Revision: 99082

URL: http://svn.digium.com/view/asterisk?view=rev&rev=99082
Log:
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)

........

Modified:
    trunk/   (props changed)
    trunk/include/asterisk/translate.h
    trunk/main/frame.c

Propchange: trunk/
------------------------------------------------------------------------------
Binary property 'branch-1.4-merged' - no diff available.

Modified: trunk/include/asterisk/translate.h
URL: http://svn.digium.com/view/asterisk/trunk/include/asterisk/translate.h?view=diff&rev=99082&r1=99081&r2=99082
==============================================================================
--- trunk/include/asterisk/translate.h (original)
+++ trunk/include/asterisk/translate.h Fri Jan 18 15:38:01 2008
@@ -147,7 +147,7 @@
 	struct timeval nextin;
 	struct timeval nextout;
 	unsigned int destroy:1;
-} attribute_packed;
+};
 
 /*! \brief generic frameout function */
 struct ast_frame *ast_trans_frameout(struct ast_trans_pvt *pvt,

Modified: trunk/main/frame.c
URL: http://svn.digium.com/view/asterisk/trunk/main/frame.c?view=diff&rev=99082&r1=99081&r2=99082
==============================================================================
--- trunk/main/frame.c (original)
+++ trunk/main/frame.c Fri Jan 18 15:38:01 2008
@@ -321,6 +321,9 @@
 
 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 @@
 #endif			
 		ast_free(fr);
 	}
-
-	if (ast_test_flag(fr, AST_FRFLAG_FROM_TRANSLATOR))
-		ast_translate_frame_freed(fr);
 }
 
 /*!




More information about the svn-commits mailing list