summaryrefslogtreecommitdiffstats
path: root/sys/cddl
diff options
context:
space:
mode:
authoravg <avg@FreeBSD.org>2015-09-29 11:58:21 +0000
committeravg <avg@FreeBSD.org>2015-09-29 11:58:21 +0000
commit8594b69e8188a592941ef441e945bfd15d534bb9 (patch)
treebfaf61316592e159b0abcff4962ec86d21096319 /sys/cddl
parent4acd1d874000fa7e52fdf724ccc785dc16c61095 (diff)
downloadFreeBSD-src-8594b69e8188a592941ef441e945bfd15d534bb9.zip
FreeBSD-src-8594b69e8188a592941ef441e945bfd15d534bb9.tar.gz
sdt: start checking version field when parsing probe definitions
This is an extra safety measure. MFC after: 21 days
Diffstat (limited to 'sys/cddl')
-rw-r--r--sys/cddl/dev/sdt/sdt.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/sys/cddl/dev/sdt/sdt.c b/sys/cddl/dev/sdt/sdt.c
index a321317..a11febe 100644
--- a/sys/cddl/dev/sdt/sdt.c
+++ b/sys/cddl/dev/sdt/sdt.c
@@ -141,6 +141,12 @@ sdt_create_probe(struct sdt_probe *probe)
char *to;
size_t len;
+ if (probe->version != (int)sizeof(*probe)) {
+ printf("ignoring probe %p, version %u expected %u\n",
+ probe, probe->version, (int)sizeof(*probe));
+ return;
+ }
+
TAILQ_FOREACH(prov, &sdt_prov_list, prov_entry)
if (strcmp(prov->name, probe->prov->name) == 0)
break;
OpenPOWER on IntegriCloud