autofs-5.0.4 - reset flex scanner when setting buffer From: Ian Kent We still have problems resetting the flex scan buffer after an error is detected. This appears to fix the problem. --- CHANGELOG | 1 + lib/master_tok.l | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletions(-) diff --git a/CHANGELOG b/CHANGELOG index c8b88e4..5f1cf7f 100644 --- a/CHANGELOG +++ b/CHANGELOG @@ -38,6 +38,7 @@ - fix lsb init script header. - fix memory leak reading master map. - fix st_remove_tasks() locking. +- reset flex scanner when setting buffer. 4/11/2008 autofs-5.0.4 ----------------------- diff --git a/lib/master_tok.l b/lib/master_tok.l index b6cc8be..373248b 100644 --- a/lib/master_tok.l +++ b/lib/master_tok.l @@ -130,7 +130,6 @@ OPTNTOUT (-n{OPTWS}|-n{OPTWS}={OPTWS}|--negative-timeout{OPTWS}|--negative-timeo \x00 { if (optr != buff) { *optr = '\0'; - optr = buff; strcpy(master_lval.strtype, buff); return NILL; } @@ -139,6 +138,11 @@ OPTNTOUT (-n{OPTWS}|-n{OPTWS}={OPTWS}|--negative-timeout{OPTWS}|--negative-timeo #.* { return COMMENT; } "/" { + if (optr != buff) { + *optr = '\0'; + strcpy(master_lval.strtype, buff); + return NILL; + } BEGIN(PATHSTR); bptr = buff; yyless(0); @@ -410,6 +414,9 @@ static void master_echo(void) void master_set_scan_buffer(const char *buffer) { + master_lex_destroy(); + optr = buff; + line = buffer; line_pos = &line[0]; /*