kprobes: fix error checking of batch registration
PATCH 1/1 kprobes: fix error checking of batch registration
Fix error checking routine to catch an error which occurs in first __register_*porbe().
Signed-off-by Masami Hiramatsu <[email protected]>
CC Ananth N Mavinakayanahalli <[email protected]>
CC Jim Keniston <[email protected]>
CC David Miller <[email protected]>
---
I found this bug when fixing batch-registration test program. This patch can be apply to both of 2.6.26-rc2-mm1 and 2.6.26-rc5.
kernel/kprobes.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-)
kernel/kprobes.c +9 -6
@@ -699,8 +699,9 @@ static int __register_kprobes(struct kprreturn -EINVAL ;for (i =0 ; i < num; i++) { ret =__register_kprobe (kps[i], called_from); -if (ret <0 && i >0 ) { -unregister_kprobes (kps, i); +if (ret <0 ) { +if (i >0 ) +unregister_kprobes (kps, i);break ; } }
@@ -776,8 +777,9 @@ static int __register_jprobes(struct jpr jp->kp.break_handler = longjmp_break_handler; ret =__register_kprobe (&jp->kp, called_from); } -if (ret <0 && i >0 ) { -unregister_jprobes (jps, i); +if (ret <0 ) { +if (i >0 ) +unregister_jprobes (jps, i);break ; } }
@@ -920,8 +922,9 @@ static int __register_kretprobes(structreturn -EINVAL ;for (i =0 ; i < num; i++) { ret =__register_kretprobe (rps[i], called_from); -if (ret <0 && i >0 ) { -unregister_kretprobes (rps, i); +if (ret <0 ) { +if (i >0 ) +unregister_kretprobes (rps, i);break ; } }
Signature · 7 lines
Masami Hiramatsu Software Engineer Hitachi Computer Products (America) Inc. Software Solutions Division e-mail: [email protected]