X-Git-Url: https://git.lttng.org/?p=lttngtop.git;a=blobdiff_plain;f=src%2Fiostreamtop.c;h=d3172f0648a3a8f49e1f6107c9e6d8efb0b75f88;hp=bda9c7ce9d8c098b86b6116ba85385e92b084c00;hb=96aa77debf3aee00361101fb2e76781c65f02ba9;hpb=480b40ce04942ac489d83ae67f54eb4b5b6f2f80 diff --git a/src/iostreamtop.c b/src/iostreamtop.c index bda9c7c..d3172f0 100644 --- a/src/iostreamtop.c +++ b/src/iostreamtop.c @@ -197,6 +197,10 @@ int update_iostream_ret(struct lttngtop *ctx, int tid, char *comm, tmp = get_proc(ctx, tid, comm, timestamp); + if (!tmp) { + err = -1; + goto end; + } if (tmp->syscall_info != NULL) { if (tmp->syscall_info->type == __NR_read && ret > 0) { @@ -223,6 +227,8 @@ int update_iostream_ret(struct lttngtop *ctx, int tid, char *comm, g_free(tmp->syscall_info); tmp->syscall_info = NULL; } + +end: return err; } @@ -260,7 +266,7 @@ struct file_history *create_file(struct file_history *history, char *file_name) enum bt_cb_ret handle_exit_syscall(struct bt_ctf_event *call_data, void *private_data) { - const struct definition *scope; + const struct bt_definition *scope; unsigned long timestamp; char *comm; uint64_t ret, tid; @@ -302,7 +308,7 @@ error: enum bt_cb_ret handle_sys_write(struct bt_ctf_event *call_data, void *private_data) { - const struct definition *scope; + const struct bt_definition *scope; struct processtop *tmp; unsigned long timestamp; uint64_t cpu_id; @@ -329,10 +335,14 @@ enum bt_cb_ret handle_sys_write(struct bt_ctf_event *call_data, } tmp = get_proc(<tngtop, tid, procname, timestamp); + if (!tmp) + goto end; + tmp->syscall_info = create_syscall_info(__NR_write, cpu_id, tid, fd); insert_file(tmp, fd); +end: return BT_CB_OK; error: @@ -343,7 +353,7 @@ enum bt_cb_ret handle_sys_read(struct bt_ctf_event *call_data, void *private_data) { struct processtop *tmp; - const struct definition *scope; + const struct bt_definition *scope; unsigned long timestamp; uint64_t cpu_id; int64_t tid; @@ -369,10 +379,14 @@ enum bt_cb_ret handle_sys_read(struct bt_ctf_event *call_data, } tmp = get_proc(<tngtop, tid, procname, timestamp); + if (!tmp) + goto end; + tmp->syscall_info = create_syscall_info(__NR_read, cpu_id, tid, fd); insert_file(tmp, fd); +end: return BT_CB_OK; error: @@ -385,7 +399,7 @@ enum bt_cb_ret handle_sys_open(struct bt_ctf_event *call_data, { struct processtop *tmp; - const struct definition *scope; + const struct bt_definition *scope; unsigned long timestamp; uint64_t cpu_id; int64_t tid; @@ -411,10 +425,14 @@ enum bt_cb_ret handle_sys_open(struct bt_ctf_event *call_data, } tmp = get_proc(<tngtop, tid, procname, timestamp); + if (!tmp) + goto end; + tmp->syscall_info = create_syscall_info(__NR_open, cpu_id, tid, -1); tmp->files_history = create_file(tmp->files_history, file); +end: return BT_CB_OK; error: @@ -425,7 +443,7 @@ error: enum bt_cb_ret handle_sys_close(struct bt_ctf_event *call_data, void *private_data) { - const struct definition *scope; + const struct bt_definition *scope; struct processtop *tmp; unsigned long timestamp; int64_t tid; @@ -450,9 +468,12 @@ enum bt_cb_ret handle_sys_close(struct bt_ctf_event *call_data, } tmp = get_proc(<tngtop, tid, procname, timestamp); + if (!tmp) + goto end; close_file(tmp, fd); +end: return BT_CB_OK; error: @@ -462,7 +483,7 @@ error: enum bt_cb_ret handle_statedump_file_descriptor(struct bt_ctf_event *call_data, void *private_data) { - const struct definition *scope; + const struct bt_definition *scope; struct processtop *parent; struct files *file; unsigned long timestamp; @@ -502,10 +523,14 @@ enum bt_cb_ret handle_statedump_file_descriptor(struct bt_ctf_event *call_data, } parent = get_proc_pid(<tngtop, pid, pid, timestamp); + if (!parent) + goto end; + parent->files_history = create_file(parent->files_history, file_name); file = parent->files_history->file; edit_file(parent, file, fd); +end: return BT_CB_OK; error: