Commit 26b8a7aa authored by Sandesh Venkatesh's avatar Sandesh Venkatesh
Browse files

Issue 692: Fixes crash due to uninitialized cosine pointer

parent 33116eaa
Loading
Loading
Loading
Loading
Loading
+80 −0
Original line number Diff line number Diff line
@@ -45,10 +45,42 @@ static Word16 get_edxt_factor( Word16 length ) /* Returns value of sqrtf(2.f/len
    {
        factor = 5181;
    }
    ELSE IF( EQ_16( length, 40 ) )
    {
        factor = 7327;
    }
    ELSE IF( EQ_16( length, 960 ) )
    {
        factor = 1496;
    }
    ELSE IF( EQ_16( length, 480 ) )
    {
        factor = 2115;
    }
    ELSE IF( EQ_16( length, 240 ) )
    {
        factor = 2991;
    }
    ELSE IF( EQ_16( length, 120 ) )
    {
        factor = 4230;
    }
    ELSE IF( EQ_16( length, 1200 ) )
    {
        factor = 1338;
    }
    ELSE IF( EQ_16( length, 800 ) )
    {
        factor = 1638;
    }
    ELSE IF( EQ_16( length, 400 ) )
    {
        factor = 2317;
    }
    ELSE IF( EQ_16( length, 200 ) )
    {
        factor = 3277;
    }
    return factor;
}

@@ -555,12 +587,60 @@ void edxt_fx(
        sinPtr = sin_scale_tbl_640;
        n = 8;
    }
    ELSE IF( EQ_16( length, 40 ) )
    {
        cosPtr = cos_scale_tbl_640;
        sinPtr = sin_scale_tbl_640;
        n = 16;
    }
    ELSE IF( EQ_16( length, 960 ) )
    {
        cosPtr = cos_scale_tbl_960;
        sinPtr = sin_scale_tbl_960;
        n = 1;
    }
    ELSE IF( EQ_16( length, 480 ) )
    {
        cosPtr = cos_scale_tbl_960;
        sinPtr = sin_scale_tbl_960;
        n = 2;
    }
    ELSE IF( EQ_16( length, 240 ) )
    {
        cosPtr = cos_scale_tbl_960;
        sinPtr = sin_scale_tbl_960;
        n = 4;
    }
    ELSE IF( EQ_16( length, 120 ) )
    {
        cosPtr = cos_scale_tbl_960;
        sinPtr = sin_scale_tbl_960;
        n = 8;
    }
    ELSE IF( EQ_16( length, 1200 ) )
    {
        cosPtr = cos_scale_tbl_1200;
        sinPtr = sin_scale_tbl_1200;
        n = 1;
    }
    ELSE IF( EQ_16( length, 800 ) )
    {
        cosPtr = cos_scale_tbl_800;
        sinPtr = sin_scale_tbl_800;
        n = 1;
    }
    ELSE IF( EQ_16( length, 400 ) )
    {
        cosPtr = cos_scale_tbl_800;
        sinPtr = sin_scale_tbl_800;
        n = 2;
    }
    ELSE IF( EQ_16( length, 200 ) )
    {
        cosPtr = cos_scale_tbl_800;
        sinPtr = sin_scale_tbl_800;
        n = 4;
    }

#ifdef FAST_EDXT
    IF( EQ_16( kernelType, MDST_II ) || EQ_16( kernelType, MDCT_II ) )
+512 −0

File changed.

Preview size limit exceeded, changes collapsed.

+4 −0
Original line number Diff line number Diff line
@@ -2134,4 +2134,8 @@ extern const Word16 cos_scale_tbl_640[640];
extern const Word16 sin_scale_tbl_640[640];
extern const Word16 sin_scale_tbl_512[512];
extern const Word16 cos_scale_tbl_512[512];
extern const Word16 cos_scale_tbl_1200[1200];
extern const Word16 sin_scale_tbl_1200[1200];
extern const Word16 cos_scale_tbl_800[800];
extern const Word16 sin_scale_tbl_800[800];
#endif