[asterisk-commits] dvossel: trunk r228420 - in /trunk: ./ codecs/codec_ilbc.c

SVN commits to the Asterisk project asterisk-commits at lists.digium.com
Fri Nov 6 11:09:05 CST 2009


Author: dvossel
Date: Fri Nov  6 11:09:01 2009
New Revision: 228420

URL: http://svnview.digium.com/svn/asterisk?view=rev&rev=228420
Log:
Merged revisions 228418 via svnmerge from 
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
  r228418 | dvossel | 2009-11-06 11:07:13 -0600 (Fri, 06 Nov 2009) | 13 lines
  
  fixes segfault in iLBC
  
  For reasons not yet known, it appears possible for an ast_frame
  to have a datalen greater than zero while the actual data is NULL
  during Packet Loss Concealment.  Most codecs don't support PLC so
  this doesn't affect them.  This patch catches the malformed frame
  and prevents the crash from occuring.  Additional efforts to determine
  why it is possible for a frame to look like this are still being
  investigated.
  
  (issue #16979)
........

Modified:
    trunk/   (props changed)
    trunk/codecs/codec_ilbc.c

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

Modified: trunk/codecs/codec_ilbc.c
URL: http://svnview.digium.com/svn/asterisk/trunk/codecs/codec_ilbc.c?view=diff&rev=228420&r1=228419&r2=228420
==============================================================================
--- trunk/codecs/codec_ilbc.c (original)
+++ trunk/codecs/codec_ilbc.c Fri Nov  6 11:09:01 2009
@@ -87,6 +87,11 @@
 	int x,i;
 	int16_t *dst = pvt->outbuf.i16;
 	float tmpf[ILBC_SAMPLES];
+
+	if (!f->data && f->datalen) {
+		ast_log(LOG_DEBUG, "issue 16070, ILIB ERROR. data = NULL datalen = %d src = %s\n", f->datalen, f->src ? f->src : "no src set");
+		f->datalen = 0;
+	}
 
 	if (f->datalen == 0) { /* native PLC, set fake f->datalen and clear plc_mode */
 		f->datalen = ILBC_FRAME_LEN;




More information about the asterisk-commits mailing list