X-Git-Url: http://git.efficios.com/?a=blobdiff_plain;f=src%2Flib%2Flttng-ust%2Flttng-bytecode.c;h=92258f168dd34beaeaf62b4fc7a7bdded27f582c;hb=969715b55504a3ef775b6ecd6c162d40e8063b62;hp=099fc5ca5bab4d444f328fc2fa0ae9991cefe749;hpb=bddade91e51d3f26fef22c7fe5dca5b22d59012a;p=lttng-ust.git diff --git a/src/lib/lttng-ust/lttng-bytecode.c b/src/lib/lttng-ust/lttng-bytecode.c index 099fc5ca..92258f16 100644 --- a/src/lib/lttng-ust/lttng-bytecode.c +++ b/src/lib/lttng-ust/lttng-bytecode.c @@ -458,6 +458,11 @@ int link_bytecode(const struct lttng_ust_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).