mirror of
https://github.com/S3NEO/android_kernel_samsung_msm8226.git
synced 2024-11-07 03:47:13 +00:00
msm: camera_v2: handle the error value returned during get clock
currently only NULL pointer check is used to validate the return value from clk_get, this change to handle all the failures. This snapshot is taken from msm-4.9 Ported it from 4.9 to 3.18 Change-Id: Icd8b7e33d0f235a7c5dde2307972a594908e6a60 Signed-off-by: Sumalatha Malothu <smalot@codeaurora.org> [haggertk: Backport to 3.4/msm8974. Note that this includes patching the non-standard camera_ll implementation as well on this kernel.] CVE-2019-10524 Signed-off-by: Kevin F. Haggerty <haggertk@lineageos.org>
This commit is contained in:
parent
be3729421c
commit
65ee88a2db
1 changed files with 5 additions and 3 deletions
|
@ -1,4 +1,4 @@
|
|||
/* Copyright (c) 2011-2013, The Linux Foundataion. All rights reserved.
|
||||
/* Copyright (c) 2011-2013, 2019 The Linux Foundataion. All rights reserved.
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License version 2 and
|
||||
|
@ -183,12 +183,13 @@ int msm_cam_clk_enable(struct device *dev, struct msm_cam_clk_info *clk_info,
|
|||
}
|
||||
} else {
|
||||
for (i = num_clk - 1; i >= 0; i--) {
|
||||
if (clk_ptr[i] != NULL) {
|
||||
if (!IS_ERR_OR_NULL(clk_ptr[i])) {
|
||||
CDBG("%s disable %s\n", __func__,
|
||||
clk_info[i].clk_name);
|
||||
clk_disable(clk_ptr[i]);
|
||||
clk_unprepare(clk_ptr[i]);
|
||||
clk_put(clk_ptr[i]);
|
||||
clk_ptr[i] = NULL;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -202,10 +203,11 @@ cam_clk_set_err:
|
|||
clk_put(clk_ptr[i]);
|
||||
cam_clk_get_err:
|
||||
for (i--; i >= 0; i--) {
|
||||
if (clk_ptr[i] != NULL) {
|
||||
if (!IS_ERR_OR_NULL(clk_ptr[i])) {
|
||||
clk_disable(clk_ptr[i]);
|
||||
clk_unprepare(clk_ptr[i]);
|
||||
clk_put(clk_ptr[i]);
|
||||
clk_ptr[i] = NULL;
|
||||
}
|
||||
}
|
||||
return rc;
|
||||
|
|
Loading…
Reference in a new issue