tracing: Fix some alloc_event_probe() error handling bugs
Subsystems (2)
PATCH 1/1 tracing: Fix some alloc_event_probe() error handling bugs
There are two bugs in this code. First, if the kzalloc() fails it leads to a NULL dereference of "ep" on the next line. Second, if the alloc_event_probe() function retursn an error then it leads to an error pointer dereference in the caller.
Fixes 7491e2c44278 ("tracing: Add a probe that attaches to trace events")
Signed-off-by Dan Carpenter <[email protected]>
--- kernel/trace/trace_eprobe.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-)
kernel/trace/trace_eprobe.c +3 -2
@@ -151,7 +151,7 @@ static struct trace_eprobe *alloc_event_probe(const char *group, ep =kzalloc (struct_size (ep, tp.args, nargs),GFP_KERNEL );if (!ep) { -trace_event_put_ref (ep->event); +trace_event_put_ref (event); goto error; } ep->event = event;
@@ -851,7 +851,8 @@ static int __trace_eprobe_create(int argc, const char *argv[]) ret =PTR_ERR (ep);/* This must return -ENOMEM, else there is a bug */ WARN_ON_ONCE (ret != -ENOMEM ); - goto error;/* We know ep is not allocated */ + ep =NULL ; + goto error; } argc -=2 ; argv +=2 ;
Signature · 1 line
2.20.1