diff options
author | Sivacharan Paka <sipaka@codeaurora.org> | 2017-04-14 10:28:42 +0800 |
---|---|---|
committer | Ariel Yin <ayin@google.com> | 2017-07-28 17:42:51 +0000 |
commit | 116ee35603a5fafcfaf3287b2e75685d99bdd830 (patch) | |
tree | 54948e27045c83e9cd225bdb69ad256f3a56b4de | |
parent | 333719a83d9b0e53cd291fc5fcd18227d997dc4f (diff) |
ASoC: msm: qdspv2: add result check when audio process failandroid-lego-7.1.1_r0.7
A audio_process_event_req is not always to success. Therefore,
check the return value for audio_process_event_req, and
initializ usr_evt before using it.
Bug: 35764875
CRs-Fixed: 2029798
Change-Id: I4adf682575f5f9233a1a1a533f9c6361af8a5bcf
Signed-off-by: kunleiz <kunleiz@codeaurora.org>
-rw-r--r-- | drivers/misc/qcom/qdsp6v2/audio_utils_aio.c | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/misc/qcom/qdsp6v2/audio_utils_aio.c b/drivers/misc/qcom/qdsp6v2/audio_utils_aio.c index db0d41142821..c37af7fea834 100644 --- a/drivers/misc/qcom/qdsp6v2/audio_utils_aio.c +++ b/drivers/misc/qcom/qdsp6v2/audio_utils_aio.c @@ -841,6 +841,7 @@ static long audio_aio_process_event_req_compat(struct q6audio_aio *audio, long rc; struct msm_audio_event32 usr_evt_32; struct msm_audio_event usr_evt; + memset(&usr_evt, 0, sizeof(struct msm_audio_event)); if (copy_from_user(&usr_evt_32, arg, sizeof(struct msm_audio_event32))) { @@ -850,6 +851,11 @@ static long audio_aio_process_event_req_compat(struct q6audio_aio *audio, usr_evt.timeout_ms = usr_evt_32.timeout_ms; rc = audio_aio_process_event_req_common(audio, &usr_evt); + if (rc < 0) { + pr_err("%s: audio process event failed, rc = %ld", + __func__, rc); + return rc; + } usr_evt_32.event_type = usr_evt.event_type; switch (usr_evt_32.event_type) { |