From 4e386fee2b3e4caf305b7693500152697976b53c Mon Sep 17 00:00:00 2001 From: Vyacheslav Cherkashin Date: Wed, 29 May 2013 16:29:22 +0400 Subject: [PATCH] [FIX] remove memory leak in ksm_register_probe() --- ks_manager/ks_manager.c | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/ks_manager/ks_manager.c b/ks_manager/ks_manager.c index c0669e9..400b26d 100644 --- a/ks_manager/ks_manager.c +++ b/ks_manager/ks_manager.c @@ -90,14 +90,19 @@ int ksm_register_probe(unsigned long addr, void *pre_handler, ret = dbi_register_jprobe(&p->p.jp); if (ret) - return ret; + goto free; ret = dbi_register_kretprobe(&p->p.rp); if (ret) - dbi_unregister_jprobe(&p->p.jp); - else - add_probe_to_list(p); + goto unregister_jprobe; + add_probe_to_list(p); + return 0; + +unregister_jprobe: + dbi_unregister_jprobe(&p->p.jp); +free: + free_probe(p); return ret; } EXPORT_SYMBOL_GPL(ksm_register_probe); -- 2.7.4