| From foo@baz Mon Apr 9 17:09:24 CEST 2018 |
| From: "Gustavo A. R. Silva" <garsilva@embeddedor.com> |
| Date: Wed, 6 Dec 2017 14:20:15 -0600 |
| Subject: PM / devfreq: Fix potential NULL pointer dereference in governor_store |
| |
| From: "Gustavo A. R. Silva" <garsilva@embeddedor.com> |
| |
| |
| [ Upstream commit 63f1e05f7fe9ca509c60154d6a833abf96eecdc9 ] |
| |
| df->governor is being dereferenced before it is null checked, |
| hence there is a potential null pointer dereference. |
| |
| Notice that df->governor is being null checked at line 1004: |
| if (df->governor) {, which implies it might be null. |
| |
| Fix this by null checking df->governor before dereferencing it. |
| |
| Addresses-Coverity-ID: 1401988 ("Dereference before null check") |
| Fixes: bcf23c79c4e4 ("PM / devfreq: Fix available_governor sysfs") |
| Signed-off-by: Gustavo A. R. Silva <garsilva@embeddedor.com> |
| Reviewed-by: Chanwoo Choi <cw00.choi@samsung.com> |
| Signed-off-by: MyungJoo Ham <myungjoo.ham@samsung.com> |
| Signed-off-by: Sasha Levin <alexander.levin@microsoft.com> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| drivers/devfreq/devfreq.c | 3 ++- |
| 1 file changed, 2 insertions(+), 1 deletion(-) |
| |
| --- a/drivers/devfreq/devfreq.c |
| +++ b/drivers/devfreq/devfreq.c |
| @@ -943,7 +943,8 @@ static ssize_t governor_store(struct dev |
| if (df->governor == governor) { |
| ret = 0; |
| goto out; |
| - } else if (df->governor->immutable || governor->immutable) { |
| + } else if ((df->governor && df->governor->immutable) || |
| + governor->immutable) { |
| ret = -EINVAL; |
| goto out; |
| } |