summaryrefslogtreecommitdiffstats
path: root/kernel/livepatch
diff options
context:
space:
mode:
authorMinfei Huang <mnfhuang@gmail.com>2015-07-14 11:15:37 +0800
committerJiri Kosina <jkosina@suse.com>2015-07-14 22:48:06 +0200
commit225f58fbcc02ace232fc49f05036042f9d58263e (patch)
tree30cda152f2024ccf23c67859296fe3541325e4c7 /kernel/livepatch
parent0faef837e431b4984652f4a14d2075bed108a04d (diff)
downloadlinux-225f58fbcc02ace232fc49f05036042f9d58263e.tar.gz
linux-225f58fbcc02ace232fc49f05036042f9d58263e.tar.bz2
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.c6
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))