aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSanjay Singh <sisanj@codeaurora.org>2018-09-17 10:36:26 +0530
committerGerrit - the friendly Code Review server <code-review@localhost>2018-09-25 04:28:47 -0700
commit806b5fb737260b2337a73e507a69e7fca95dc8d6 (patch)
treed4e1f12f48ecce9b314e30c287e8fa1054361fa1
parent9563f288bd6b255ff5de3c3304836b6398b0ec24 (diff)
msm: vidc: ignore processing responses in invalid stateLE.UM.2.3.2-03000-SDX24
No need to process response messages from video hardware after device went into invalid state. Processing responses may result in use-after-free memory fault because client might free all the resources after error. Change-Id: Ia2c22a2740466e6368e61437aa4246927150858b Signed-off-by: Maheshwar Ajja <majja@codeaurora.org> Signed-off-by: Sanjay Singh <sisanj@codeaurora.org>
-rw-r--r--drivers/media/platform/msm/vidc_3x/venus_hfi.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/drivers/media/platform/msm/vidc_3x/venus_hfi.c b/drivers/media/platform/msm/vidc_3x/venus_hfi.c
index c38508803e43..1bd6ae8959cf 100644
--- a/drivers/media/platform/msm/vidc_3x/venus_hfi.c
+++ b/drivers/media/platform/msm/vidc_3x/venus_hfi.c
@@ -3645,6 +3645,12 @@ err_no_work:
i < num_responses; ++i) {
struct msm_vidc_cb_info *r = &device->response_pkt[i];
+ if (!__core_in_valid_state(device)) {
+ dprintk(VIDC_ERR,
+ "Ignore responses from %d to %d as device is in invalid state",
+ (i + 1), num_responses);
+ break;
+ }
device->callback(r->response_type, &r->response);
}