Message ID | 7c85f7dc159927a7316dc13f52697f157fb6e2bd.1566502743.git.mchehab+samsung@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [1/7] media: remove include stdarg.h from some drivers | expand |
On 8/22/19 2:39 PM, Mauro Carvalho Chehab wrote: > While this might not occur in practice, if the device is doing > the right thing, it would be teoretically be possible to have > both hsync_counter and vsync_counter negatives. > > If this ever happen, ctrl will be undefined, but the driver > will still call: > > aspeed_video_update(video, VE_CTRL, 0, ctrl); > > Change the code to prevent this to happen. > > This was warned by cppcheck: > > [drivers/media/platform/aspeed-video.c:653]: (error) Uninitialized variable: ctrl Thanks Mauro. Reviewed-by: Eddie James <eajames@linux.ibm.com> > > Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org> > --- > drivers/media/platform/aspeed-video.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > diff --git a/drivers/media/platform/aspeed-video.c b/drivers/media/platform/aspeed-video.c > index f899ac3b4a61..4ef37cfc8446 100644 > --- a/drivers/media/platform/aspeed-video.c > +++ b/drivers/media/platform/aspeed-video.c > @@ -630,7 +630,7 @@ static void aspeed_video_check_and_set_polarity(struct aspeed_video *video) > } > > if (hsync_counter < 0 || vsync_counter < 0) { > - u32 ctrl; > + u32 ctrl = 0; > > if (hsync_counter < 0) { > ctrl = VE_CTRL_HSYNC_POL; > @@ -650,7 +650,8 @@ static void aspeed_video_check_and_set_polarity(struct aspeed_video *video) > V4L2_DV_VSYNC_POS_POL; > } > > - aspeed_video_update(video, VE_CTRL, 0, ctrl); > + if (ctrl) > + aspeed_video_update(video, VE_CTRL, 0, ctrl); > } > } >
diff --git a/drivers/media/platform/aspeed-video.c b/drivers/media/platform/aspeed-video.c index f899ac3b4a61..4ef37cfc8446 100644 --- a/drivers/media/platform/aspeed-video.c +++ b/drivers/media/platform/aspeed-video.c @@ -630,7 +630,7 @@ static void aspeed_video_check_and_set_polarity(struct aspeed_video *video) } if (hsync_counter < 0 || vsync_counter < 0) { - u32 ctrl; + u32 ctrl = 0; if (hsync_counter < 0) { ctrl = VE_CTRL_HSYNC_POL; @@ -650,7 +650,8 @@ static void aspeed_video_check_and_set_polarity(struct aspeed_video *video) V4L2_DV_VSYNC_POS_POL; } - aspeed_video_update(video, VE_CTRL, 0, ctrl); + if (ctrl) + aspeed_video_update(video, VE_CTRL, 0, ctrl); } }
While this might not occur in practice, if the device is doing the right thing, it would be teoretically be possible to have both hsync_counter and vsync_counter negatives. If this ever happen, ctrl will be undefined, but the driver will still call: aspeed_video_update(video, VE_CTRL, 0, ctrl); Change the code to prevent this to happen. This was warned by cppcheck: [drivers/media/platform/aspeed-video.c:653]: (error) Uninitialized variable: ctrl Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org> --- drivers/media/platform/aspeed-video.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)