staging: atomisp: off by one in atomisp_acc_load_extensions()
Subsystems (5)
Media (V4L/DVB) Staging Kernel janitors Intel MID (Mobile Internet Device) platform +1 more subsystems
PATCH 1/1 staging: atomisp: off by one in atomisp_acc_load_extensions()
We should be doing i-- on all error paths but we don't if the loop finishes successfully. I've re-arranged this so that we don't read beyond the end of acc_flag_to_pipe[] array.
Fixes a49d25364dfb ("staging/atomisp: Add support for the Intel IPU v2")
Signed-off-by Dan Carpenter <[email protected]>
drivers/staging/media/atomisp/pci/atomisp2/atomisp_acc.c +2 -4
@@ -472,10 +472,8 @@ int atomisp_acc_load_extensions(struct atomisp_sub_device *asd) acc_fw->fw, acc_flag_to_pipe[i].pipe_id, acc_fw->type); -if (ret) { - i--; +if (ret) goto error; - } ext_loaded = true; }
@@ -499,7 +497,7 @@ int atomisp_acc_load_extensions(struct atomisp_sub_device *asd)return 0 ; error: -for (; i >=0 ; i--) { +while (--i >=0 ) {if (acc_fw->flags & acc_flag_to_pipe[i].flag) {atomisp_css_unload_acc_extension (asd, acc_fw->fw, acc_flag_to_pipe[i].pipe_id);