diff options
author | markj <markj@FreeBSD.org> | 2015-06-07 19:46:12 +0000 |
---|---|---|
committer | markj <markj@FreeBSD.org> | 2015-06-07 19:46:12 +0000 |
commit | f524c3384201c19567a4c1223b67ba886bdea6d7 (patch) | |
tree | d235074814220fd4d9379f1880ff8f2236016206 /cddl/contrib/opensolaris | |
parent | a7dc7c7729eed7bed02eea99125843731f9a77a4 (diff) | |
download | FreeBSD-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/contrib/opensolaris')
-rw-r--r-- | cddl/contrib/opensolaris/lib/libdtrace/common/dt_lex.l | 1 |
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; } /* |