--- lib/master_tok.l | 25 ++++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) --- autofs-5.0.1.orig/lib/master_tok.l +++ autofs-5.0.1/lib/master_tok.l @@ -79,6 +79,7 @@ int my_yyinput(char *, int); char buff[1024]; char *bptr; char *optr = buff; +unsigned int tlen; %} @@ -192,13 +193,27 @@ OPTNTOUT (-n{OPTWS}|-n{OPTWS}={OPTWS}|-- {OPTWS}\\\n{OPTWS} {} {MULTI} { - strcpy(master_lval.strtype, master_text); - return(MULTITYPE); + tlen = master_leng - 1; + if (bptr != buff && isblank(master_text[tlen])) { + strncat(buff, master_text, tlen); + bptr += tlen; + yyless(tlen); + } else { + strcpy(master_lval.strtype, master_text); + return(MULTITYPE); + } } {MTYPE} { - strcpy(master_lval.strtype, master_text); - return(MAPTYPE); + tlen = master_leng - 1; + if (bptr != buff && isblank(master_text[tlen])) { + strncat(buff, master_text, tlen); + bptr += tlen; + yyless(tlen); + } else { + strcpy(master_lval.strtype, master_text); + return(MAPTYPE); + } } {MULTISEP} { return(DDASH); } @@ -222,7 +237,7 @@ OPTNTOUT (-n{OPTWS}|-n{OPTWS}={OPTWS}|-- yyless(0); } - {DNSERVERSTR} { + {DNSERVERSTR}{DNATTRSTR} { BEGIN(DNSTR); yyless(0); }