Skip to content

Commit

Permalink
fix SEGV bug in test.
Browse files Browse the repository at this point in the history
  • Loading branch information
aikiriao committed Feb 21, 2023
1 parent 156bde0 commit 27ce540
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 4 deletions.
5 changes: 5 additions & 0 deletions libs/lpc/src/lpc.c
Original file line number Diff line number Diff line change
Expand Up @@ -1156,6 +1156,11 @@ LPCApiResult LPCCalculator_EstimateCodeLength(
return LPC_APIRESULT_INVALID_ARGUMENT;
}

/* 次数チェック */
if (coef_order > lpcc->max_order) {
return LPC_APIRESULT_EXCEED_MAX_ORDER;
}

/* 係数計算 */
if (LPC_CalculateCoef(lpcc, data, num_samples, coef_order, window_type, 0.0) != LPC_ERROR_OK) {
return LPC_APIRESULT_FAILED_TO_CALCULATION;
Expand Down
11 changes: 7 additions & 4 deletions test/srla_encode_decode/main.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
#include "srla_encoder.h"
#include "srla_decoder.h"
#include "srla_utility.h"
#include "srla_internal.h"

#ifndef M_PI
#define M_PI 3.14159265358979323846
Expand Down Expand Up @@ -214,7 +215,7 @@ static void SRLAEncodeDecodeTest_InputDoubleToInputFixedFloat(
}

/* 単一のテストケースを実行 */
static int32_t SRLAEncodeDecodeTest_ExecuteTestCase(const struct EncodeDecodeTestCase* test_case)
static int32_t SRLAEncodeDecodeTest_ExecuteTestCase(const struct EncodeDecodeTestCase *test_case)
{
int32_t ret;
uint32_t smpl, ch;
Expand All @@ -230,12 +231,14 @@ static int32_t SRLAEncodeDecodeTest_ExecuteTestCase(const struct EncodeDecodeTes
struct SRLADecoderConfig decoder_config;
struct SRLAEncoder *encoder;
struct SRLADecoder *decoder;
const struct SRLAParameterPreset *preset;

assert(test_case != NULL);
assert(test_case->num_samples <= (1UL << 14)); /* 長過ぎる入力はNG */

num_samples = test_case->num_samples;
num_channels = test_case->encode_parameter.num_channels;
preset = &g_srla_parameter_preset[test_case->encode_parameter.preset];
/* 十分なデータサイズを用意(入力データPCMの2倍) */
data_size = SRLA_HEADER_SIZE + (2 * num_channels * num_samples * test_case->encode_parameter.bits_per_sample) / 8;

Expand All @@ -244,9 +247,9 @@ static int32_t SRLAEncodeDecodeTest_ExecuteTestCase(const struct EncodeDecodeTes
encoder_config.max_num_channels = num_channels;
encoder_config.min_num_samples_per_block = test_case->encode_parameter.min_num_samples_per_block;
encoder_config.max_num_samples_per_block = test_case->encode_parameter.max_num_samples_per_block;
encoder_config.max_num_parameters = 32;
encoder_config.max_num_parameters = preset->max_num_parameters;
decoder_config.max_num_channels = num_channels;
decoder_config.max_num_parameters = 32;
decoder_config.max_num_parameters = preset->max_num_parameters;
decoder_config.check_checksum = 1;

/* 一時領域の割り当て */
Expand Down

0 comments on commit 27ce540

Please sign in to comment.