Fixes an initialization issue in SILK prefill found by Coverity
authorJean-Marc Valin <jmvalin@jmvalin.ca>
Tue, 12 Nov 2013 19:20:00 +0000 (14:20 -0500)
committerJean-Marc Valin <jmvalin@jmvalin.ca>
Tue, 12 Nov 2013 19:20:00 +0000 (14:20 -0500)
silk/fixed/encode_frame_FIX.c
silk/float/encode_frame_FLP.c

index 4361636..9c57a10 100644 (file)
@@ -302,10 +302,6 @@ opus_int silk_encode_frame_FIX(
     silk_memmove( psEnc->x_buf, &psEnc->x_buf[ psEnc->sCmn.frame_length ],
         ( psEnc->sCmn.ltp_mem_length + LA_SHAPE_MS * psEnc->sCmn.fs_kHz ) * sizeof( opus_int16 ) );
 
     silk_memmove( psEnc->x_buf, &psEnc->x_buf[ psEnc->sCmn.frame_length ],
         ( psEnc->sCmn.ltp_mem_length + LA_SHAPE_MS * psEnc->sCmn.fs_kHz ) * sizeof( opus_int16 ) );
 
-    /* Parameters needed for next frame */
-    psEnc->sCmn.prevLag        = sEncCtrl.pitchL[ psEnc->sCmn.nb_subfr - 1 ];
-    psEnc->sCmn.prevSignalType = psEnc->sCmn.indices.signalType;
-
     /* Exit without entropy coding */
     if( psEnc->sCmn.prefillFlag ) {
         /* No payload */
     /* Exit without entropy coding */
     if( psEnc->sCmn.prefillFlag ) {
         /* No payload */
@@ -314,6 +310,10 @@ opus_int silk_encode_frame_FIX(
         return ret;
     }
 
         return ret;
     }
 
+    /* Parameters needed for next frame */
+    psEnc->sCmn.prevLag        = sEncCtrl.pitchL[ psEnc->sCmn.nb_subfr - 1 ];
+    psEnc->sCmn.prevSignalType = psEnc->sCmn.indices.signalType;
+
     /****************************************/
     /* Finalize payload                     */
     /****************************************/
     /****************************************/
     /* Finalize payload                     */
     /****************************************/
index 29bdc54..df75db9 100644 (file)
@@ -294,10 +294,6 @@ opus_int silk_encode_frame_FLP(
     silk_memmove( psEnc->x_buf, &psEnc->x_buf[ psEnc->sCmn.frame_length ],
         ( psEnc->sCmn.ltp_mem_length + LA_SHAPE_MS * psEnc->sCmn.fs_kHz ) * sizeof( silk_float ) );
 
     silk_memmove( psEnc->x_buf, &psEnc->x_buf[ psEnc->sCmn.frame_length ],
         ( psEnc->sCmn.ltp_mem_length + LA_SHAPE_MS * psEnc->sCmn.fs_kHz ) * sizeof( silk_float ) );
 
-    /* Parameters needed for next frame */
-    psEnc->sCmn.prevLag        = sEncCtrl.pitchL[ psEnc->sCmn.nb_subfr - 1 ];
-    psEnc->sCmn.prevSignalType = psEnc->sCmn.indices.signalType;
-
     /* Exit without entropy coding */
     if( psEnc->sCmn.prefillFlag ) {
         /* No payload */
     /* Exit without entropy coding */
     if( psEnc->sCmn.prefillFlag ) {
         /* No payload */
@@ -305,6 +301,10 @@ opus_int silk_encode_frame_FLP(
         return ret;
     }
 
         return ret;
     }
 
+    /* Parameters needed for next frame */
+    psEnc->sCmn.prevLag        = sEncCtrl.pitchL[ psEnc->sCmn.nb_subfr - 1 ];
+    psEnc->sCmn.prevSignalType = psEnc->sCmn.indices.signalType;
+
     /****************************************/
     /* Finalize payload                     */
     /****************************************/
     /****************************************/
     /* Finalize payload                     */
     /****************************************/