]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
media: aspeed-video: address a protential usage of an unitialized var
authorMauro Carvalho Chehab <mchehab+samsung@kernel.org>
Thu, 22 Aug 2019 14:46:40 +0000 (11:46 -0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 5 Oct 2019 11:13:49 +0000 (13:13 +0200)
[ Upstream commit 31b8b0bd6e55c3ea5a08bb8141fa5d3c90600e3b ]

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

Reviewed-by: Eddie James <eajames@linux.ibm.com>
Signed-off-by: Mauro Carvalho Chehab <mchehab+samsung@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/media/platform/aspeed-video.c

index de0f192afa8b12a136df044651d858bfe9175226..388c32a11345dc5c1a43f4fa82b3528947a3d559 100644 (file)
@@ -632,7 +632,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;
@@ -652,7 +652,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);
        }
 }