From a9fc3c9c0ca4bdcd51b7a82c909e926317d3e982 Mon Sep 17 00:00:00 2001 From: Markus Lehtonen Date: Fri, 7 Sep 2012 14:43:02 +0300 Subject: [PATCH] atomisp: fix a possible null pointer dereference Fix kernel oops in case isp->main_format is not initialized. Signed-off-by: Markus Lehtonen --- drivers/media/video/atomisp/atomisp_cmd.c | 1 + drivers/media/video/atomisp/atomisp_ioctl.c | 6 ++++-- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/media/video/atomisp/atomisp_cmd.c b/drivers/media/video/atomisp/atomisp_cmd.c index f1718d0..ca1d507 100644 --- a/drivers/media/video/atomisp/atomisp_cmd.c +++ b/drivers/media/video/atomisp/atomisp_cmd.c @@ -1323,6 +1323,7 @@ bool atomisp_is_viewfinder_support(struct atomisp_device *isp) return false; if ((isp->sw_contex.run_mode == CI_MODE_STILL_CAPTURE) && + (isp->main_format) && (isp->main_format->out_sh_fmt == SH_CSS_FRAME_FORMAT_RAW) && (isp->sw_contex.bypass)) return false; diff --git a/drivers/media/video/atomisp/atomisp_ioctl.c b/drivers/media/video/atomisp/atomisp_ioctl.c index e8b884f..3219ba5 100644 --- a/drivers/media/video/atomisp/atomisp_ioctl.c +++ b/drivers/media/video/atomisp/atomisp_ioctl.c @@ -790,7 +790,8 @@ int atomisp_reqbufs(struct file *file, void *fh, switch (isp->sw_contex.run_mode) { case CI_MODE_STILL_CAPTURE: - if (isp->main_format->out_sh_fmt != SH_CSS_FRAME_FORMAT_RAW) { + if ((isp->main_format) && + (isp->main_format->out_sh_fmt != SH_CSS_FRAME_FORMAT_RAW)) { if (sh_css_capture_get_viewfinder_frame_info(&vf_info)) goto error; if ((!isp->isp_subdev.video_out_vf.opened) && @@ -969,7 +970,8 @@ static int atomisp_qbuf(struct file *file, void *fh, struct v4l2_buffer *buf) switch (isp->sw_contex.run_mode) { case CI_MODE_STILL_CAPTURE: - if ((isp->main_format->out_sh_fmt != + if ((isp->main_format) && + (isp->main_format->out_sh_fmt != SH_CSS_FRAME_FORMAT_RAW) && sh_css_capture_get_viewfinder_frame_info(&vf_info)) goto error; -- 2.7.4