Author: alexc Date: Thu Nov 26 22:52:58 2009 New Revision: 5461 Log: Allocate vk0 and vk1 on the stack to prevent memory leaks.
Modified: aac-sbr/aacsbr.c Modified: aac-sbr/aacsbr.c ============================================================================== --- aac-sbr/aacsbr.c Thu Nov 26 22:52:56 2009 (r5460) +++ aac-sbr/aacsbr.c Thu Nov 26 22:52:58 2009 (r5461) @@ -240,7 +240,7 @@ static int sbr_make_f_master(AACContext float warp = spectrum->bs_alter_scale ? 1.3 : 1.0; // bs_alter_scale = {0,1} unsigned int two_regions, num_bands_0; int vdk0_max, vdk1_min; - int *vk0; + int vk0[49]; if (sbr->k[2] / (float)sbr->k[0] > 2.2449) { two_regions = 1; @@ -257,7 +257,6 @@ static int sbr_make_f_master(AACContext return -1; } - vk0 = av_malloc((num_bands_0 + 1) * sizeof(int)); vk0[0] = 0; for (k = 0; k < num_bands_0; k++) { @@ -278,12 +277,10 @@ static int sbr_make_f_master(AACContext } if (two_regions) { - int *vk1; + int vk1[49]; unsigned int num_bands_1 = lroundf(bands * logf(sbr->k[2] / (float)sbr->k[1]) / (2.0f * logf(2.0f) * warp)) << 1; - vk1 = av_malloc((num_bands_1 + 1) * sizeof(int)); - for (k = 0; k < num_bands_1; k++) { vk1[k + 1] = lroundf(sbr->k[1] * powf(sbr->k[2] / (float)sbr->k[1], (k + 1) / (float)num_bands_1)) - lroundf(sbr->k[1] * powf(sbr->k[2] / (float)sbr->k[1], k / (float)num_bands_1)); @@ -314,12 +311,10 @@ static int sbr_make_f_master(AACContext memcpy(&sbr->f_master[0], vk0, (num_bands_0 + 1) * sizeof(sbr->f_master[0])); memcpy(&sbr->f_master[num_bands_0 + 1], vk1 + 1, num_bands_1 * sizeof(sbr->f_master[0])); - av_free(vk1); } else { sbr->n_master = num_bands_0; memcpy(sbr->f_master, vk0, (num_bands_0 + 1) * sizeof(sbr->f_master[0])); } - av_free(vk0); } // Requirements (14496-3 sp04 p205) if (sbr->spectrum_params[1].bs_xover_band >= sbr->n_master) { _______________________________________________ FFmpeg-soc mailing list FFmpeg-soc@mplayerhq.hu https://lists.mplayerhq.hu/mailman/listinfo/ffmpeg-soc