X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=src%2Flib%2Flttng-ust%2Flttng-bytecode.c;h=92258f168dd34beaeaf62b4fc7a7bdded27f582c;hb=82235210bea4ed2e09bf485a49baf2db6287810f;hp=099fc5ca5bab4d444f328fc2fa0ae9991cefe749;hpb=c7ef2e7d2442e0620e439ddaa71c596437a5804c;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).