fimc-is: Eliminate some BUG_ON() from fimc_is_group_buffer_finish()
authorSylwester Nawrocki <s.nawrocki@samsung.com>
Fri, 6 Nov 2015 13:33:22 +0000 (14:33 +0100)
committerMarek Szyprowski <m.szyprowski@samsung.com>
Fri, 27 Apr 2018 08:25:07 +0000 (10:25 +0200)
This prevents kernel panic caused by wrong sequences in user space.

Change-Id: I1470675c0a2a2bcecb526dbef0f93772c5da9cb4
Signed-off-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
drivers/media/platform/exynos/fimc-is/fimc-is-groupmgr.c

index 8979ee25dd7a8ce3d839ea622c11d8a9f0fc56e6..d5e518209599264d6049bae97af1ad4497c5b0cd 100644 (file)
@@ -1413,8 +1413,12 @@ int fimc_is_group_buffer_finish(struct fimc_is_groupmgr *groupmgr,
        BUG_ON(!group);
        BUG_ON(!group->leader.vctx);
        BUG_ON(group->instance >= FIMC_IS_MAX_NODES);
-       BUG_ON(group->id >= GROUP_ID_MAX);
-       BUG_ON(index >= FRAMEMGR_MAX_REQUEST);
+
+       if (WARN_ON(group->id >= GROUP_ID_MAX))
+               return -EINVAL;
+
+       if (WARN_ON(index >= FRAMEMGR_MAX_REQUEST))
+               return -EINVAL;
 
        framemgr = GET_GROUP_FRAMEMGR(group);