Warn and return on fd overflow fdt
[lttng-modules.git] / src / lttng-bytecode.c
index d6f41c8498048ec23b2662a341231bd1be7087b0..3d283268513bb451e0416b0284174c35616d3172 100644 (file)
@@ -472,6 +472,11 @@ int link_bytecode(const struct lttng_kernel_event_desc *event_desc,
        runtime->len = bytecode->bc.reloc_offset;
        /* copy original bytecode */
        memcpy(runtime->code, bytecode->bc.data, runtime->len);
+       /* Validate bytecode load instructions before relocs. */
+       ret = lttng_bytecode_validate_load(runtime);
+       if (ret) {
+               goto link_error;
+       }
        /*
         * apply relocs. Those are a uint16_t (offset in bytecode)
         * followed by a string (field name).
@@ -591,26 +596,6 @@ void lttng_enabler_link_bytecode(const struct lttng_kernel_event_desc *event_des
        }
 }
 
-/*
- * We own the filter_bytecode if we return success.
- */
-int lttng_filter_enabler_attach_bytecode(struct lttng_event_enabler_common *enabler,
-               struct lttng_kernel_bytecode_node *filter_bytecode)
-{
-       list_add(&filter_bytecode->node, &enabler->filter_bytecode_head);
-       return 0;
-}
-
-void lttng_free_enabler_filter_bytecode(struct lttng_event_enabler_common *enabler)
-{
-       struct lttng_kernel_bytecode_node *filter_bytecode, *tmp;
-
-       list_for_each_entry_safe(filter_bytecode, tmp,
-                       &enabler->filter_bytecode_head, node) {
-               kfree(filter_bytecode);
-       }
-}
-
 void lttng_free_event_filter_runtime(struct lttng_kernel_event_common *event)
 {
        struct bytecode_runtime *runtime, *tmp;
This page took 0.034315 seconds and 4 git commands to generate.