Bläddra i källkod

video: driver: Add index check in enum format

Add index check in enum fmt call and add the missing
break statement in handle_session_property.

Change-Id: Ida294f9ad4b8fa5c86d73b0e5bbd5297d8dbcd1b
Signed-off-by: Mihir Ganu <[email protected]>
Mihir Ganu 4 år sedan
förälder
incheckning
3f52f1e392
3 ändrade filer med 9 tillägg och 0 borttagningar
  1. 4 0
      driver/vidc/src/msm_vdec.c
  2. 4 0
      driver/vidc/src/msm_venc.c
  3. 1 0
      driver/vidc/src/venus_hfi_response.c

+ 4 - 0
driver/vidc/src/msm_vdec.c

@@ -2437,6 +2437,8 @@ int msm_vdec_enum_fmt(struct msm_vidc_inst *inst, struct v4l2_fmtdesc *f)
 				idx++;
 			}
 		}
+		if (!array[f->index])
+			return -EINVAL;
 		f->pixelformat = v4l2_codec_from_driver(array[f->index],
 				__func__);
 		if (!f->pixelformat)
@@ -2458,6 +2460,8 @@ int msm_vdec_enum_fmt(struct msm_vidc_inst *inst, struct v4l2_fmtdesc *f)
 				}
 			}
 		}
+		if (!array[f->index])
+			return -EINVAL;
 		f->pixelformat = v4l2_colorformat_from_driver(array[f->index],
 				__func__);
 		if (!f->pixelformat)

+ 4 - 0
driver/vidc/src/msm_venc.c

@@ -1738,6 +1738,8 @@ int msm_venc_enum_fmt(struct msm_vidc_inst *inst, struct v4l2_fmtdesc *f)
 				idx++;
 			}
 		}
+		if (!array[f->index])
+			return -EINVAL;
 		f->pixelformat = v4l2_codec_from_driver(array[f->index],
 				__func__);
 		if (!f->pixelformat)
@@ -1756,6 +1758,8 @@ int msm_venc_enum_fmt(struct msm_vidc_inst *inst, struct v4l2_fmtdesc *f)
 				idx++;
 			}
 		}
+		if (!array[f->index])
+			return -EINVAL;
 		f->pixelformat = v4l2_colorformat_from_driver(array[f->index],
 				__func__);
 		if (!f->pixelformat)

+ 1 - 0
driver/vidc/src/venus_hfi_response.c

@@ -1295,6 +1295,7 @@ static int handle_session_property(struct msm_vidc_inst *inst,
 			msm_vidc_update_cap_value(inst, ENTROPY_MODE,
 				V4L2_MPEG_VIDEO_H264_ENTROPY_MODE_CAVLC,
 				__func__);
+		break;
 	case HFI_PROP_DPB_LIST:
 		if (is_decode_session(inst) && port == OUTPUT_PORT &&
 			inst->capabilities->cap[DPB_LIST].value) {