Re: [PATCH -tip 5/5] tracing: simplify memory recycle of trace_define_field

From: Wenji Huang
Date: Wed Feb 24 2010 - 03:21:43 EST


On 02/24/2010 04:04 PM, Li Zefan wrote:
Wenji Huang wrote:
Discard freeing field->type since it's not necessary and may be hazard.


It's redundant, but it's safe, because if we run into this failure path,
field->type is always NULL.

There are two entries to failure path, field->name == NULL or
field->type == NULL. And allocating for field->name is before field->type.

IMHO, field->type is not fixed after initialization, it's
not safe if field->name==NULL goes to failure path.

Regards,
Wenji

Signed-off-by: Wenji Huang<wenji.huang@xxxxxxxxxx>

Reviewed-by: Li Zefan<lizf@xxxxxxxxxxxxxx>

---
kernel/trace/trace_events.c | 4 +---
1 files changed, 1 insertions(+), 3 deletions(-)

diff --git a/kernel/trace/trace_events.c b/kernel/trace/trace_events.c
index c2a3077..3f972ad 100644
--- a/kernel/trace/trace_events.c
+++ b/kernel/trace/trace_events.c
@@ -60,10 +60,8 @@ int trace_define_field(struct ftrace_event_call *call, const char *type,
return 0;

err:
- if (field) {
+ if (field)
kfree(field->name);
- kfree(field->type);
- }
kfree(field);

return -ENOMEM;

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/