diff options
| author | Chiwen Chang <rock1104.tw@yahoo.com.tw> | 2015-01-28 17:30:54 +1100 |
|---|---|---|
| committer | Gerrit Rockbox <gerrit@rockbox.org> | 2015-01-30 20:06:00 +0100 |
| commit | 572b36a51a7796e88c11cf0658ced40c1a6efece (patch) | |
| tree | 90ab2f663635770b2a4e6d69c9e1dcc266ba950a | |
| parent | f35d63bc216e59ba1eecfb138e23915521716128 (diff) | |
| download | rockbox-572b36a51a7796e88c11cf0658ced40c1a6efece.zip rockbox-572b36a51a7796e88c11cf0658ced40c1a6efece.tar.gz rockbox-572b36a51a7796e88c11cf0658ced40c1a6efece.tar.bz2 rockbox-572b36a51a7796e88c11cf0658ced40c1a6efece.tar.xz | |
fix surround & pbe dsp crash
check handle before clean up buffer in flush().
Change-Id: I36a130c45c9f5dce97aa723ef98922b6935ead75
| -rw-r--r-- | lib/rbcodec/dsp/pbe.c | 3 | ||||
| -rw-r--r-- | 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 28cdbb2..3656f68 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 26d12b1..b2995de 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) |