Cherry-pick note: I (Simon) see this error when building on the CI's ppc
machine, although I don't see it on the CI job.
gcc 12.1.0 reports that:
In file included from object-pool.h:38,
from clock-class.h:11,
from trace.c:27:
In function 'bt_ctf_object_set_parent',
inlined from 'bt_ctf_object_set_parent' at object.h:102:6,
inlined from 'bt_ctf_trace_common_add_stream_class' at trace.c:1227:3:
object.h:123:26: warning: null pointer dereference [-Wnull-dereference]
123 | if (child->parent) {
| ~~~~~^~~~~~~~
object.h:123:26: warning: null pointer dereference [-Wnull-dereference]
This can indeed happen if bt_ctf_trace_common_add_stream_class is called
with a nil stream class argument. A null check is added in the error
path.
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Change-Id: I313966c1747c3929a46b98af71ba58f607d3c7df
Reviewed-on: https://review.lttng.org/c/babeltrace/+/8084
Reviewed-on: https://review.lttng.org/c/babeltrace/+/9566
Tested-by: jenkins <jenkins@lttng.org>
end:
if (ret) {
- bt_ctf_object_set_parent(&stream_class->base, NULL);
+ if (stream_class) {
+ bt_ctf_object_set_parent(&stream_class->base, NULL);
+ }
if (ec_validation_outputs) {
for (i = 0; i < event_class_count; i++) {