Additional check added to bt_component_sink_validate
[babeltrace.git] / lib / plugin-system / sink.c
index 0ee51604ee1e9728769637853feed20c151d9fda..f49f93cce36a5399669a1ad0f28d1228bc0b2fb7 100644 (file)
@@ -39,6 +39,21 @@ enum bt_component_status bt_component_sink_validate(
        enum bt_component_status ret = BT_COMPONENT_STATUS_OK;
        struct bt_component_sink *sink;
 
+       if (!component) {
+               ret = BT_COMPONENT_STATUS_INVALID;
+               goto end;
+       }
+
+       if (!component->class) {
+               ret = BT_COMPONENT_STATUS_INVALID;
+               goto end;
+       }
+
+       if (component->class->type != BT_COMPONENT_TYPE_SINK) {
+               ret = BT_COMPONENT_STATUS_INVALID;
+               goto end;
+       }
+
        sink = container_of(component, struct bt_component_sink, parent);
        if (!sink->consume) {
                printf_error("Invalid sink component; no notification consumption callback defined.");
This page took 0.024236 seconds and 4 git commands to generate.