projects
/
babeltrace.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix: bt_ctf_trace_freeze must fail if type resolving fails
[babeltrace.git]
/
formats
/
ctf
/
ir
/
trace.c
diff --git
a/formats/ctf/ir/trace.c
b/formats/ctf/ir/trace.c
index b8f4f7258d0bc66463d03cff58b386b60d3fcfde..32de5bb5f0d74929faffe4c68b05e0cabe84ec40 100644
(file)
--- a/
formats/ctf/ir/trace.c
+++ b/
formats/ctf/ir/trace.c
@@
-46,7
+46,7
@@
void bt_ctf_trace_destroy(struct bt_ctf_ref *ref);
static
int init_trace_packet_header(struct bt_ctf_trace *trace);
static
static
int init_trace_packet_header(struct bt_ctf_trace *trace);
static
-
void
bt_ctf_trace_freeze(struct bt_ctf_trace *trace);
+
int
bt_ctf_trace_freeze(struct bt_ctf_trace *trace);
static
const unsigned int field_type_aliases_alignments[] = {
static
const unsigned int field_type_aliases_alignments[] = {
@@
-504,7
+504,8
@@
int bt_ctf_trace_add_stream_class(struct bt_ctf_trace *trace,
bt_ctf_stream_class_freeze(stream_class);
if (!trace->frozen) {
bt_ctf_stream_class_freeze(stream_class);
if (!trace->frozen) {
- bt_ctf_trace_freeze(trace);
+ ret = bt_ctf_trace_freeze(trace);
+ goto end;
}
end:
if (ret) {
}
end:
if (ret) {
@@
-892,11
+893,19
@@
struct bt_ctf_field_type *get_field_type(enum field_type_alias alias)
}
static
}
static
-
void
bt_ctf_trace_freeze(struct bt_ctf_trace *trace)
+
int
bt_ctf_trace_freeze(struct bt_ctf_trace *trace)
{
{
- bt_ctf_trace_resolve_types(trace);
+ int ret = 0;
+
+ ret = bt_ctf_trace_resolve_types(trace);
+ if (ret) {
+ goto end;
+ }
+
bt_ctf_attributes_freeze(trace->environment);
trace->frozen = 1;
bt_ctf_attributes_freeze(trace->environment);
trace->frozen = 1;
+end:
+ return ret;
}
static
}
static
This page took
0.032235 seconds
and
4
git commands to generate.