Diff for /embedaddon/sudo/plugins/sudoers/visudo.c between versions 1.1.1.2 and 1.1.1.3

version 1.1.1.2, 2012/05/29 12:26:49 version 1.1.1.3, 2012/10/09 09:29:52
Line 188  main(int argc, char *argv[]) Line 188  main(int argc, char *argv[])
                 (void) printf(_("%s grammar version %d\n"), getprogname(), SUDOERS_GRAMMAR_VERSION);                  (void) printf(_("%s grammar version %d\n"), getprogname(), SUDOERS_GRAMMAR_VERSION);
                 goto done;                  goto done;
             case 'c':              case 'c':
                checkonly++;             /* check mode */                checkonly = true;        /* check mode */
                 break;                  break;
             case 'f':              case 'f':
                 sudoers_path = optarg;  /* sudoers file path */                  sudoers_path = optarg;  /* sudoers file path */
Line 198  main(int argc, char *argv[]) Line 198  main(int argc, char *argv[])
                 help();                  help();
                 break;                  break;
             case 's':              case 's':
                strict++;               /* strict mode */                strict = true;               /* strict mode */
                 break;                  break;
             case 'q':              case 'q':
                quiet++;               /* quiet mode */                quiet = false;               /* quiet mode */
                 break;                  break;
             default:              default:
                 usage(1);                  usage(1);
Line 235  main(int argc, char *argv[]) Line 235  main(int argc, char *argv[])
     if ((yyin = open_sudoers(sudoers_path, true, NULL)) == NULL) {      if ((yyin = open_sudoers(sudoers_path, true, NULL)) == NULL) {
         error(1, "%s", sudoers_path);          error(1, "%s", sudoers_path);
     }      }
    init_parser(sudoers_path, 0);    init_parser(sudoers_path, false);
     yyparse();      yyparse();
     (void) update_defaults(SETDEF_GENERIC|SETDEF_HOST|SETDEF_USER);      (void) update_defaults(SETDEF_GENERIC|SETDEF_HOST|SETDEF_USER);
   
Line 472  reparse_sudoers(char *editor, char *args, bool strict, Line 472  reparse_sudoers(char *editor, char *args, bool strict,
     int ch;      int ch;
     debug_decl(reparse_sudoers, SUDO_DEBUG_UTIL)      debug_decl(reparse_sudoers, SUDO_DEBUG_UTIL)
   
       if (tq_empty(&sudoerslist))
           debug_return;
   
     /*      /*
      * Parse the edited sudoers files and do sanity checking       * Parse the edited sudoers files and do sanity checking
      */       */
Line 497  reparse_sudoers(char *editor, char *args, bool strict, Line 500  reparse_sudoers(char *editor, char *args, bool strict,
         }          }
         fclose(yyin);          fclose(yyin);
         if (!parse_error) {          if (!parse_error) {
            if (!update_defaults(SETDEF_GENERIC|SETDEF_HOST|SETDEF_USER) ||            if (!check_defaults(SETDEF_ALL, quiet) ||
                 check_aliases(strict, quiet) != 0) {                  check_aliases(strict, quiet) != 0) {
                 parse_error = true;                  parse_error = true;
                errorfile = sp->path;                errorfile = NULL;
             }              }
         }          }
   
Line 524  reparse_sudoers(char *editor, char *args, bool strict, Line 527  reparse_sudoers(char *editor, char *args, bool strict,
             tq_foreach_fwd(&sudoerslist, sp) {              tq_foreach_fwd(&sudoerslist, sp) {
                 if (errorfile == NULL || strcmp(sp->path, errorfile) == 0) {                  if (errorfile == NULL || strcmp(sp->path, errorfile) == 0) {
                     edit_sudoers(sp, editor, args, errorlineno);                      edit_sudoers(sp, editor, args, errorlineno);
                    break;                    if (errorfile != NULL)
                         break;
                 }                  }
             }              }
            if (sp == NULL) {            if (errorfile != NULL && sp == NULL) {
                 errorx(1, _("internal error, unable to find %s in list!"),                  errorx(1, _("internal error, unable to find %s in list!"),
                     sudoers);                      sudoers);
             }              }
Line 822  check_syntax(char *sudoers_path, bool quiet, bool stri Line 826  check_syntax(char *sudoers_path, bool quiet, bool stri
         parse_error = true;          parse_error = true;
         errorfile = sudoers_path;          errorfile = sudoers_path;
     }      }
    if (!parse_error && check_aliases(strict, quiet) != 0) {    if (!parse_error) {
        parse_error = true;        if (!check_defaults(SETDEF_ALL, quiet) ||
        errorfile = sudoers_path;            check_aliases(strict, quiet) != 0) {
             parse_error = true;
             errorfile = NULL;
         }
     }      }
     ok = !parse_error;      ok = !parse_error;
   

Removed from v.1.1.1.2  
changed lines
  Added in v.1.1.1.3


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>