diff options
author | Minfei Huang <mnfhuang@gmail.com> | 2015-07-14 05:15:37 +0200 |
---|---|---|
committer | Jiri Kosina <jkosina@suse.com> | 2015-07-14 22:48:06 +0200 |
commit | 225f58fbcc02ace232fc49f05036042f9d58263e (patch) | |
tree | 30cda152f2024ccf23c67859296fe3541325e4c7 /kernel/livepatch | |
parent | Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jik... (diff) | |
download | linux-225f58fbcc02ace232fc49f05036042f9d58263e.tar.xz linux-225f58fbcc02ace232fc49f05036042f9d58263e.zip |
livepatch: Improve error handling in klp_disable_func()
In case of func->state or func->old_addr not having expected values,
we'd rather bail out immediately from klp_disable_func().
This can't really happen with the current codebase, but fix this
anyway in the sake of robustness.
[jkosina@suse.com: reworded the changelog a bit]
Signed-off-by: Minfei Huang <mnfhuang@gmail.com>
Acked-by: Josh Poimboeuf <jpoimboe@redhat.com>
Signed-off-by: Jiri Kosina <jkosina@suse.com>
Diffstat (limited to 'kernel/livepatch')
-rw-r--r-- | kernel/livepatch/core.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/kernel/livepatch/core.c b/kernel/livepatch/core.c index c40ebcca0495..6e5344112419 100644 --- a/kernel/livepatch/core.c +++ b/kernel/livepatch/core.c @@ -348,8 +348,10 @@ static void klp_disable_func(struct klp_func *func) { struct klp_ops *ops; - WARN_ON(func->state != KLP_ENABLED); - WARN_ON(!func->old_addr); + if (WARN_ON(func->state != KLP_ENABLED)) + return; + if (WARN_ON(!func->old_addr)) + return; ops = klp_find_ops(func->old_addr); if (WARN_ON(!ops)) |