summaryrefslogtreecommitdiffstats
path: root/cddl
diff options
context:
space:
mode:
authormarkj <markj@FreeBSD.org>2015-06-07 19:46:12 +0000
committermarkj <markj@FreeBSD.org>2015-06-07 19:46:12 +0000
commitf524c3384201c19567a4c1223b67ba886bdea6d7 (patch)
treed235074814220fd4d9379f1880ff8f2236016206 /cddl
parenta7dc7c7729eed7bed02eea99125843731f9a77a4 (diff)
downloadFreeBSD-src-f524c3384201c19567a4c1223b67ba886bdea6d7.zip
FreeBSD-src-f524c3384201c19567a4c1223b67ba886bdea6d7.tar.gz
MFC r283025:
As dtrace(1) processes D libraries under /usr/lib/dtrace, the compiler may return an error if one of the depends_on directives in a library is not satisfied. In this case, libdtrace is supposed to ignore the library and carry on. However, the remainder of the library may still be buffered by the lexer, causing libdtrace to erroneously continue processing it on the next call to yyparse(). Fix this by explicitly flushing the input buffer each time the compiler state is reset.
Diffstat (limited to 'cddl')
-rw-r--r--cddl/contrib/opensolaris/lib/libdtrace/common/dt_lex.l1
1 files changed, 1 insertions, 0 deletions
diff --git a/cddl/contrib/opensolaris/lib/libdtrace/common/dt_lex.l b/cddl/contrib/opensolaris/lib/libdtrace/common/dt_lex.l
index 032d303..bd41171 100644
--- a/cddl/contrib/opensolaris/lib/libdtrace/common/dt_lex.l
+++ b/cddl/contrib/opensolaris/lib/libdtrace/common/dt_lex.l
@@ -743,6 +743,7 @@ yyinit(dt_pcb_t *pcb)
#if defined(sun)
yysptr = yysbuf;
#endif
+ YY_FLUSH_BUFFER;
}
/*
OpenPOWER on IntegriCloud