]> xenbits.xensource.com Git - people/julieng/freebsd.git/commitdiff
std: it is important that func name is never an empty string
authoravg <avg@FreeBSD.org>
Tue, 29 Sep 2015 12:02:23 +0000 (12:02 +0000)
committeravg <avg@FreeBSD.org>
Tue, 29 Sep 2015 12:02:23 +0000 (12:02 +0000)
otherwise DTRACE_ANCHORED() returns false and that makes stack()
insert a bogus frame at the top.
For example:
dtrace -n 'test:dtrace_test::sdttest { stack(); }

This change is not really a solution, but just a work-around.
The real solution is to record the probe's call site and to use
that for resolving a function name.

PR: 195222
MFC after: 22 days

sys/cddl/dev/sdt/sdt.c

index a11febeda70ebede494dd22b2994e9537b4c6548..67504bf08989b9c7393dea785381d80dfea6757e 100644 (file)
@@ -168,6 +168,8 @@ sdt_create_probe(struct sdt_probe *probe)
         * in the C compiler, so we have to respect const vs non-const.
         */
        strlcpy(func, probe->func, sizeof(func));
+       if (func[0] == '\0')
+               strcpy(func, "none");
 
        from = probe->name;
        to = name;