=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/sudo/Attic/parse.lex,v retrieving revision 1.10 retrieving revision 1.11 diff -c -r1.10 -r1.11 *** src/usr.bin/sudo/Attic/parse.lex 2003/04/19 21:57:17 1.10 --- src/usr.bin/sudo/Attic/parse.lex 2004/09/28 15:10:51 1.11 *************** *** 1,36 **** %{ /* ! * Copyright (c) 1996, 1998-2003 Todd C. Miller ! * All rights reserved. * ! * This code is derived from software contributed by Chris Jepeway. * ! * This code is derived from software contributed by Chris Jepeway ! * Redistribution and use in source and binary forms, with or without ! * modification, are permitted provided that the following conditions ! * are met: ! * ! * 1. Redistributions of source code must retain the above copyright ! * notice, this list of conditions and the following disclaimer. ! * ! * 2. Redistributions in binary form must reproduce the above copyright ! * notice, this list of conditions and the following disclaimer in the ! * documentation and/or other materials provided with the distribution. ! * ! * 3. The name of the author may not be used to endorse or promote products ! * derived from this software without specific prior written permission. ! * ! * 4. Products derived from this software may not be called "Sudo" nor ! * may "Sudo" appear in their names without specific prior written ! * permission from the author. ! * ! * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, ! * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY ! * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL ! * THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, ! * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, ! * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; ! * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. --- 1,18 ---- %{ /* ! * Copyright (c) 1996, 1998-2004 Todd C. Miller * ! * Permission to use, copy, modify, and distribute this software for any ! * purpose with or without fee is hereby granted, provided that the above ! * copyright notice and this permission notice appear in all copies. * ! * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES ! * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF ! * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ! * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES ! * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ! * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF ! * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. *************** *** 72,78 **** #include #ifndef lint ! static const char rcsid[] = "$Sudo: parse.lex,v 1.127 2003/04/16 00:42:10 millert Exp $"; #endif /* lint */ #undef yywrap /* guard against a yywrap macro */ --- 54,60 ---- #include #ifndef lint ! static const char rcsid[] = "$Sudo: parse.lex,v 1.132 2004/05/17 20:51:13 millert Exp $"; #endif /* lint */ #undef yywrap /* guard against a yywrap macro */ *************** *** 160,166 **** --- 142,156 ---- } { + \\[\*\?\[\]\!] { + /* quoted fnmatch glob char, pass verbatim */ + LEXTRACE("QUOTEDCHAR "); + fill_args(yytext, 2, sawspace); + sawspace = FALSE; + } + \\[:\\,= \t#] { + /* quoted sudoers special char, strip backslash */ LEXTRACE("QUOTEDCHAR "); fill_args(yytext + 1, 1, sawspace); sawspace = FALSE; *************** *** 228,233 **** --- 218,233 ---- return(PASSWD); } + NOEXEC[[:blank:]]*: { + LEXTRACE("NOEXEC "); + return(NOEXEC); + } + + EXEC[[:blank:]]*: { + LEXTRACE("EXEC "); + return(EXEC); + } + \+{WORD} { /* netgroup */ fill(yytext, yyleng); *************** *** 281,286 **** --- 281,292 ---- \) { BEGIN INITIAL; } + + sudoedit { + BEGIN GOTCMND; + LEXTRACE("COMMAND "); + fill_cmnd(yytext, yyleng); + } /* sudo -e */ \/(\\[\,:= \t#]|[^\,:=\\ \t\n#])+ { /* directories can't have args... */