From 572b36a51a7796e88c11cf0658ced40c1a6efece Mon Sep 17 00:00:00 2001 From: Chiwen Chang Date: Wed, 28 Jan 2015 17:30:54 +1100 Subject: fix surround & pbe dsp crash check handle before clean up buffer in flush(). Change-Id: I36a130c45c9f5dce97aa723ef98922b6935ead75 --- lib/rbcodec/dsp/pbe.c | 3 ++- lib/rbcodec/dsp/surround.c | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/lib/rbcodec/dsp/pbe.c b/lib/rbcodec/dsp/pbe.c index 28cdbb2084..3656f687fd 100644 --- a/lib/rbcodec/dsp/pbe.c +++ b/lib/rbcodec/dsp/pbe.c @@ -80,7 +80,8 @@ static void dsp_pbe_flush(void) return; /* Not currently enabled */ unsigned int total_len = (B0_SIZE + B2_SIZE + B3_SIZE) * 2; - memset(core_get_data(handle),0,sizeof(int32_t) * total_len); + if (handle > 0) + memset(core_get_data(handle),0,sizeof(int32_t) * total_len); b0_r[0] = 0; b0_w[0] = 0; b0_r[1] = 0; b0_w[1] = 0; b2_r[0] = 0; b2_w[0] = 0; diff --git a/lib/rbcodec/dsp/surround.c b/lib/rbcodec/dsp/surround.c index 26d12b1952..b2995de49f 100644 --- a/lib/rbcodec/dsp/surround.c +++ b/lib/rbcodec/dsp/surround.c @@ -97,7 +97,8 @@ static void dsp_surround_flush(void) return; unsigned int total_len = B0_DLY + B2_DLY + BB_DLY + HH_DLY + CL_DLY; - memset(core_get_data(handle),0,sizeof(int32_t) * total_len); + if (handle > 0) + memset(core_get_data(handle),0,sizeof(int32_t) * total_len); } static void surround_update_filter(unsigned int fout) -- cgit v1.2.3