| From e4cad900994cf286d971796a947fea782dfc6651 Mon Sep 17 00:00:00 2001 |
| From: Francis Giraldeau <francis.giraldeau@gmail.com> |
| Date: Mon, 15 Jun 2015 11:43:02 -0400 |
| Subject: [PATCH] Fix invalid pointer free with trace collection |
| |
| Upstream-Status: Submitted |
| |
| Patch proposed by Li RongQing related to bug# 790 |
| |
| Signed-off-by: Mikael Beckius <mikael.beckius@windriver.com> |
| Signed-off-by: Francis Giraldeau <francis.giraldeau@gmail.com> |
| --- |
| lib/context.c | 8 +++----- |
| 1 file changed, 3 insertions(+), 5 deletions(-) |
| |
| diff --git a/lib/context.c b/lib/context.c |
| index 45aab34..8d3770f 100644 |
| --- a/lib/context.c |
| +++ b/lib/context.c |
| @@ -79,7 +79,7 @@ int bt_context_add_trace(struct bt_context *ctx, const char *path, |
| struct bt_trace_descriptor *td; |
| struct bt_format *fmt; |
| struct bt_trace_handle *handle; |
| - int ret, closeret; |
| + int ret; |
| |
| if (!ctx || !format_name || (!path && !stream_list)) |
| return -EINVAL; |
| @@ -159,10 +159,8 @@ int bt_context_add_trace(struct bt_context *ctx, const char *path, |
| return handle->id; |
| |
| error: |
| - closeret = fmt->close_trace(td); |
| - if (closeret) { |
| - fprintf(stderr, "Error in close_trace callback\n"); |
| - } |
| + if (handle) |
| + bt_context_remove_trace(ctx, handle->id); |
| end: |
| return ret; |
| } |
| -- |
| 1.9.1 |
| |