From a5c9974603cd8fdd4ec6a5ff39d81d33d93994e8 Mon Sep 17 00:00:00 2001 From: Bdale Garbee Date: Wed, 14 May 2008 12:03:38 -0600 Subject: [PATCH] Imported Upstream version 1.6.8p9 --- CHANGES | 15 ++++++++ Makefile.in | 2 +- auth/kerb5.c | 2 +- check.c | 8 ++--- config.guess | 30 ++-------------- config.sub | 6 ++++ ldap.c | 2 -- parse.yacc | 4 --- sudo.c | 16 +++------ sudo.cat | 18 +++++----- sudo.man.in | 2 +- sudo.tab.c | 48 ++++++++++++------------- sudo_noexec.c | 95 +++++++++++++++++++++++++++++++++++++++----------- sudoers.cat | 46 ++++++++++++------------ sudoers.man.in | 2 +- version.h | 2 +- visudo.cat | 6 ++-- visudo.man.in | 2 +- 18 files changed, 169 insertions(+), 137 deletions(-) diff --git a/CHANGES b/CHANGES index 928b09f..221d7bd 100644 --- a/CHANGES +++ b/CHANGES @@ -1778,3 +1778,18 @@ Sudo 1.6.8p6 released. 561) Fixed setting of $USER when env_reset is enabled. Sudo 1.6.8p7 released. + +562) Fixed noexec functionality on Linux. + +563) Fixed minor format string mismatches in some error cases. + +564) Fixed a bug that prevented Heimdal authentication from working. + +Sudo 1.6.8p8 released. + +565) Updated config.guess and config.sub entries for OpenBSD. + +566) A sudoers entry with sudo ALL no longer overwrites the value of + safe_cmnd. + +Sudo 1.6.8p9 released. diff --git a/Makefile.in b/Makefile.in index 477ad2b..58f78d4 100644 --- a/Makefile.in +++ b/Makefile.in @@ -130,7 +130,7 @@ TESTOBJS = interfaces.o testsudoers.o $(PARSEOBJS) LIBOBJS = @LIBOBJS@ @ALLOCA@ -VERSION = 1.6.8p7 +VERSION = 1.6.8p9 DISTFILES = $(SRCS) $(HDRS) BUGS CHANGES HISTORY INSTALL INSTALL.configure \ LICENSE Makefile.in PORTING README README.LDAP RUNSON TODO \ diff --git a/auth/kerb5.c b/auth/kerb5.c index 9723020..07022c5 100644 --- a/auth/kerb5.c +++ b/auth/kerb5.c @@ -55,7 +55,7 @@ static const char rcsid[] = "$Sudo: kerb5.c,v 1.23 2004/06/07 00:02:56 millert E #endif /* lint */ #ifdef HAVE_HEIMDAL -# define extract_name(c, p) krb5_principal_get_comp_string(c, p, 0) +# define extract_name(c, p) krb5_principal_get_comp_string(c, p, 1) # define krb5_free_data_contents(c, d) krb5_data_free(d) # define ENCTYPE_DES_CBC_MD5 ETYPE_DES_CBC_MD5 /* XXX */ #else diff --git a/check.c b/check.c index c1fa931..b8bd988 100644 --- a/check.c +++ b/check.c @@ -316,7 +316,7 @@ build_timestamp(timestampdir, timestampfile) dirparent = def_timestampdir; len = easprintf(timestampdir, "%s/%s", dirparent, user_name); if (len >= PATH_MAX) - log_error(0, "timestamp path too long: %s", timestampdir); + log_error(0, "timestamp path too long: %s", *timestampdir); /* * Timestamp file may be a file in the directory or NUL to use @@ -335,12 +335,12 @@ build_timestamp(timestampdir, timestampfile) else len = easprintf(timestampfile, "%s/%s/%s", dirparent, user_name, p); if (len >= PATH_MAX) - log_error(0, "timestamp path too long: %s", timestampfile); + log_error(0, "timestamp path too long: %s", *timestampfile); } else if (def_targetpw) { len = easprintf(timestampfile, "%s/%s/%s", dirparent, user_name, *user_runas); if (len >= PATH_MAX) - log_error(0, "timestamp path too long: %s", timestampfile); + log_error(0, "timestamp path too long: %s", *timestampfile); } else *timestampfile = NULL; } @@ -465,7 +465,7 @@ timestamp_status(timestampdir, timestampfile, user, make_dirs) /* If bad uid or file mode, complain and kill the bogus file. */ if (sb.st_uid != timestamp_uid) { log_error(NO_EXIT, - "%s owned by uid %ud, should be uid %lu", + "%s owned by uid %lu, should be uid %lu", timestampfile, (unsigned long) sb.st_uid, (unsigned long) timestamp_uid); (void) unlink(timestampfile); diff --git a/config.guess b/config.guess index 256fd50..d3e7afb 100644 --- a/config.guess +++ b/config.guess @@ -197,35 +197,9 @@ case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used. echo "${machine}-${os}${release}" exit 0 ;; - amiga:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - hp300:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mac68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - macppc:OpenBSD:*:*) - echo powerpc-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvme68k:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvme88k:OpenBSD:*:*) - echo m88k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - mvmeppc:OpenBSD:*:*) - echo powerpc-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - sgi:OpenBSD:*:*) - echo mips64-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; - sun3:OpenBSD:*:*) - echo m68k-unknown-openbsd${UNAME_RELEASE} - exit 0 ;; *:OpenBSD:*:*) - echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE} + UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'` + echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE} exit 0 ;; alpha:OSF1:*:*) if test $UNAME_RELEASE = "V4.0"; then diff --git a/config.sub b/config.sub index 9fe531e..cefda09 100755 --- a/config.sub +++ b/config.sub @@ -369,6 +369,12 @@ case $basic_machine in basic_machine=a29k-none os=-bsd ;; + amd64) + basic_machine=x86_64-pc + ;; + amd64-*) + basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'` + ;; amdahl) basic_machine=580-amdahl os=-sysv diff --git a/ldap.c b/ldap.c index b5ecc44..a202fb2 100644 --- a/ldap.c +++ b/ldap.c @@ -278,8 +278,6 @@ int sudo_ldap_check_command(ld,entry) /* Match against ALL ? */ if (!strcasecmp(*p,"ALL")) { ret=1; - if (safe_cmnd) free (safe_cmnd); - safe_cmnd=estrdup(user_cmnd); if (ldap_conf.debug>1) printf(" MATCH!\n"); continue; } diff --git a/parse.yacc b/parse.yacc index c74125b..46dce22 100644 --- a/parse.yacc +++ b/parse.yacc @@ -676,10 +676,6 @@ cmnd : ALL { } $$ = TRUE; - - if (safe_cmnd) - free(safe_cmnd); - safe_cmnd = estrdup(user_cmnd); } | ALIAS { aliasinfo *aip; diff --git a/sudo.c b/sudo.c index 31edb65..3313b00 100644 --- a/sudo.c +++ b/sudo.c @@ -275,6 +275,8 @@ main(argc, argv, envp) /* Validate the user but don't search for pseudo-commands. */ validated = sudoers_lookup(pwflag); } + if (safe_cmnd == NULL) + safe_cmnd = user_cmnd; /* * If we are using set_perms_posix() and the stay_setuid flag was not set, @@ -391,14 +393,6 @@ main(argc, argv, envp) exit(0); } - /* This *must* have been set if we got a match but... */ - if (safe_cmnd == NULL) { - log_error(MSG_ONLY, - "internal error, safe_cmnd never got set for %s; %s", - user_cmnd, - "please report this error at http://courtesan.com/sudo/bugs/"); - } - /* Override user's umask if configured to do so. */ if (def_umask != 0777) (void) umask(def_umask); @@ -901,10 +895,10 @@ check_sudoers() (statbuf.st_mode & 07777), SUDOERS_MODE); else if (statbuf.st_uid != SUDOERS_UID) log_error(0, "%s is owned by uid %lu, should be %lu", _PATH_SUDOERS, - (unsigned long) statbuf.st_uid, SUDOERS_UID); + (unsigned long) statbuf.st_uid, (unsigned long) SUDOERS_UID); else if (statbuf.st_gid != SUDOERS_GID) log_error(0, "%s is owned by gid %lu, should be %lu", _PATH_SUDOERS, - (unsigned long) statbuf.st_gid, SUDOERS_GID); + (unsigned long) statbuf.st_gid, (unsigned long) SUDOERS_GID); else { /* Solaris sometimes returns EAGAIN so try 10 times */ for (i = 0; i < 10 ; i++) { @@ -1086,7 +1080,7 @@ get_authpw() } else if (def_targetpw) { if (runas_pw->pw_name == NULL) log_error(NO_MAIL|MSG_ONLY, "no passwd entry for %lu!", - runas_pw->pw_uid); + (unsigned long) runas_pw->pw_uid); pw = runas_pw; } else pw = sudo_user.pw; diff --git a/sudo.cat b/sudo.cat index c64eace..fdca4d8 100644 --- a/sudo.cat +++ b/sudo.cat @@ -61,7 +61,7 @@ DDEESSCCRRIIPPTTIIOONN -1.6.8p7 February 5, 2005 1 +1.6.8p9 June, 20 2005 1 @@ -127,7 +127,7 @@ OOPPTTIIOONNSS -1.6.8p7 February 5, 2005 2 +1.6.8p9 June, 20 2005 2 @@ -193,7 +193,7 @@ SUDO(1m) MAINTENANCE COMMANDS SUDO(1m) -1.6.8p7 February 5, 2005 3 +1.6.8p9 June, 20 2005 3 @@ -259,7 +259,7 @@ SUDO(1m) MAINTENANCE COMMANDS SUDO(1m) -1.6.8p7 February 5, 2005 4 +1.6.8p9 June, 20 2005 4 @@ -325,7 +325,7 @@ SSEECCUURRIITTYY NNOOTTEESS -1.6.8p7 February 5, 2005 5 +1.6.8p9 June, 20 2005 5 @@ -391,7 +391,7 @@ EENNVVIIRROONNMMEENNTT -1.6.8p7 February 5, 2005 6 +1.6.8p9 June, 20 2005 6 @@ -457,7 +457,7 @@ AAUUTTHHOORRSS -1.6.8p7 February 5, 2005 7 +1.6.8p9 June, 20 2005 7 @@ -523,7 +523,7 @@ DDIISSCCLLAAIIMMEERR -1.6.8p7 February 5, 2005 8 +1.6.8p9 June, 20 2005 8 @@ -589,6 +589,6 @@ SUDO(1m) MAINTENANCE COMMANDS SUDO(1m) -1.6.8p7 February 5, 2005 9 +1.6.8p9 June, 20 2005 9 diff --git a/sudo.man.in b/sudo.man.in index 6fc6e17..773886a 100644 --- a/sudo.man.in +++ b/sudo.man.in @@ -149,7 +149,7 @@ .\" ======================================================================== .\" .IX Title "SUDO @mansectsu@" -.TH SUDO @mansectsu@ "February 5, 2005" "1.6.8p7" "MAINTENANCE COMMANDS" +.TH SUDO @mansectsu@ "June 20, 2005" "1.6.8p9" "MAINTENANCE COMMANDS" .SH "NAME" sudo, sudoedit \- execute a command as another user .SH "SYNOPSIS" diff --git a/sudo.tab.c b/sudo.tab.c index 7ec3357..1bd3a18 100644 --- a/sudo.tab.c +++ b/sudo.tab.c @@ -4,7 +4,7 @@ static char yyrcsid[] #if __GNUC__ >= 2 __attribute__ ((unused)) #endif /* __GNUC__ >= 2 */ - = "$OpenBSD: skeleton.c,v 1.23 2004/03/12 13:39:50 henning Exp $"; + = "$OpenBSD: skeleton.c,v 1.24 2005/06/10 16:40:45 pvalchev Exp $"; #endif #include #define YYBYACC 1 @@ -89,7 +89,7 @@ static char yyrcsid[] #endif /* HAVE_LSEARCH */ #ifndef lint -static const char rcsid[] = "$Sudo: sudo.tab.c,v 1.76 2004/08/11 18:29:36 millert Exp $"; +static const char rcsid[] = "$Sudo: parse.yacc,v 1.204 2004/08/11 18:29:10 millert Exp $"; #endif /* lint */ /* @@ -674,7 +674,7 @@ short *yyss; short *yysslim; YYSTYPE *yyvs; int yystacksize; -#line 890 "parse.yacc" +#line 886 "parse.yacc" #define MOREALIASES (32) aliasinfo *aliases = NULL; @@ -1740,14 +1740,10 @@ case 60: } yyval.BOOLEAN = TRUE; - - if (safe_cmnd) - free(safe_cmnd); - safe_cmnd = estrdup(user_cmnd); } break; case 61: -#line 684 "parse.yacc" +#line 680 "parse.yacc" { aliasinfo *aip; @@ -1779,7 +1775,7 @@ case 61: } break; case 62: -#line 713 "parse.yacc" +#line 709 "parse.yacc" { if (printmatches == TRUE) { if (in_alias == TRUE) { @@ -1807,11 +1803,11 @@ case 62: } break; case 65: -#line 744 "parse.yacc" +#line 740 "parse.yacc" { push; } break; case 66: -#line 744 "parse.yacc" +#line 740 "parse.yacc" { if ((MATCHED(host_matches) || pedantic) && !add_alias(yyvsp[-3].string, HOST_ALIAS, host_matches)) { @@ -1822,7 +1818,7 @@ case 66: } break; case 71: -#line 762 "parse.yacc" +#line 758 "parse.yacc" { push; if (printmatches == TRUE) { @@ -1835,7 +1831,7 @@ case 71: } break; case 72: -#line 771 "parse.yacc" +#line 767 "parse.yacc" { if ((MATCHED(cmnd_matches) || pedantic) && !add_alias(yyvsp[-3].string, CMND_ALIAS, cmnd_matches)) { @@ -1850,11 +1846,11 @@ case 72: } break; case 73: -#line 785 "parse.yacc" +#line 781 "parse.yacc" { ; } break; case 77: -#line 793 "parse.yacc" +#line 789 "parse.yacc" { if (printmatches == TRUE) { in_alias = TRUE; @@ -1866,7 +1862,7 @@ case 77: } break; case 78: -#line 801 "parse.yacc" +#line 797 "parse.yacc" { if ((yyvsp[0].BOOLEAN != NOMATCH || pedantic) && !add_alias(yyvsp[-3].string, RUNAS_ALIAS, yyvsp[0].BOOLEAN)) { @@ -1880,11 +1876,11 @@ case 78: } break; case 81: -#line 818 "parse.yacc" +#line 814 "parse.yacc" { push; } break; case 82: -#line 818 "parse.yacc" +#line 814 "parse.yacc" { if ((MATCHED(user_matches) || pedantic) && !add_alias(yyvsp[-3].string, USER_ALIAS, user_matches)) { @@ -1896,19 +1892,19 @@ case 82: } break; case 85: -#line 833 "parse.yacc" +#line 829 "parse.yacc" { SETMATCH(user_matches, yyvsp[0].BOOLEAN); } break; case 86: -#line 836 "parse.yacc" +#line 832 "parse.yacc" { SETNMATCH(user_matches, yyvsp[0].BOOLEAN); } break; case 87: -#line 841 "parse.yacc" +#line 837 "parse.yacc" { if (userpw_matches(yyvsp[0].string, user_name, sudo_user.pw)) yyval.BOOLEAN = TRUE; @@ -1918,7 +1914,7 @@ case 87: } break; case 88: -#line 848 "parse.yacc" +#line 844 "parse.yacc" { if (usergr_matches(yyvsp[0].string, user_name, sudo_user.pw)) yyval.BOOLEAN = TRUE; @@ -1928,7 +1924,7 @@ case 88: } break; case 89: -#line 855 "parse.yacc" +#line 851 "parse.yacc" { if (netgr_matches(yyvsp[0].string, NULL, NULL, user_name)) yyval.BOOLEAN = TRUE; @@ -1938,7 +1934,7 @@ case 89: } break; case 90: -#line 862 "parse.yacc" +#line 858 "parse.yacc" { aliasinfo *aip = find_alias(yyvsp[0].string, USER_ALIAS); @@ -1963,12 +1959,12 @@ case 90: } break; case 91: -#line 884 "parse.yacc" +#line 880 "parse.yacc" { yyval.BOOLEAN = TRUE; } break; -#line 1920 "sudo.tab.c" +#line 1916 "sudo.tab.c" } yyssp -= yym; yystate = *yyssp; diff --git a/sudo_noexec.c b/sudo_noexec.c index f06f03f..bce1a92 100644 --- a/sudo_noexec.c +++ b/sudo_noexec.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004 Todd C. Miller + * Copyright (c) 2004-2005 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 @@ -17,9 +17,14 @@ #include "config.h" #include +#ifdef __STDC__ +# include +#else +# include +#endif #ifndef lint -static const char rcsid[] = "$Sudo: sudo_noexec.c,v 1.5 2004/02/13 21:36:43 millert Exp $"; +static const char rcsid[] = "$Sudo: sudo_noexec.c,v 1.11 2005/03/10 15:09:28 millert Exp $"; #endif /* lint */ /* @@ -34,24 +39,72 @@ static const char rcsid[] = "$Sudo: sudo_noexec.c,v 1.5 2004/02/13 21:36:43 mill extern int errno; #endif -#define DUMMY(fn, args, atypes) \ -int \ -fn args \ - atypes \ -{ \ - errno = EACCES; \ - return(-1); \ +#define DUMMY_BODY \ +{ \ + errno = EACCES; \ + return(-1); \ } -DUMMY(execve, (path, argv, envp), - const char *path; char *const argv[]; char *const envp[];) -DUMMY(_execve, (path, argv, envp), - const char *path; char *const argv[]; char *const envp[];) -DUMMY(execv, (path, argv, envp), - const char *path; char *const argv[];) -DUMMY(_execv, (path, argv, envp), - const char *path; char *const argv[];) -DUMMY(fexecve, (fd, argv, envp), - int fd; char *const argv[]; char *const envp[];) -DUMMY(_fexecve, (fd, argv, envp), - int fd; char *const argv[]; char *const envp[];) +#ifdef __STDC__ + +#define DUMMY2(fn, t1, t2) \ +int \ +fn(t1 a1, t2 a2) \ +DUMMY_BODY + +#define DUMMY3(fn, t1, t2, t3) \ +int \ +fn(t1 a1, t2 a2, t3 a3) \ +DUMMY_BODY + +#define DUMMY_VA(fn, t1, t2) \ +int \ +fn(t1 a1, t2 a2, ...) \ +DUMMY_BODY + +#else /* !__STDC__ */ + +#define DUMMY2(fn, t1, t2) \ +int \ +fn(a1, a2) \ +t1 a1; t2 a2; \ +DUMMY_BODY + +#define DUMMY3(fn, t1, t2, t3) \ +int \ +fn(a1, a2, a3) \ +t1 a1; t2 a2; t3 a3; \ +DUMMY_BODY + +#define DUMMY_VA(fn, t1, t2) \ +int \ +fn(a1, a2, va_alist) \ +t1 a1; t2 a2; va_dcl \ +DUMMY_BODY + +#endif /* !__STDC__ */ + +DUMMY_VA(execl, const char *, const char *) +DUMMY_VA(_execl, const char *, const char *) +DUMMY_VA(__execl, const char *, const char *) +DUMMY_VA(execle, const char *, const char *) +DUMMY_VA(_execle, const char *, const char *) +DUMMY_VA(__execle, const char *, const char *) +DUMMY_VA(execlp, const char *, const char *) +DUMMY_VA(_execlp, const char *, const char *) +DUMMY_VA(__execlp, const char *, const char *) +DUMMY2(execv, const char *, char * const *) +DUMMY2(_execv, const char *, char * const *) +DUMMY2(__execv, const char *, char * const *) +DUMMY2(execvp, const char *, char * const *) +DUMMY2(_execvp, const char *, char * const *) +DUMMY2(__execvp, const char *, char * const *) +DUMMY3(execvP, const char *, const char *, char * const *) +DUMMY3(_execvP, const char *, const char *, char * const *) +DUMMY3(__execvP, const char *, const char *, char * const *) +DUMMY3(execve, const char *, char * const *, char * const *) +DUMMY3(_execve, const char *, char * const *, char * const *) +DUMMY3(__execve, const char *, char * const *, char * const *) +DUMMY3(fexecve, int , char * const *, char * const *) +DUMMY3(_fexecve, int , char * const *, char * const *) +DUMMY3(__fexecve, int , char * const *, char * const *) diff --git a/sudoers.cat b/sudoers.cat index bdf0465..8be0790 100644 --- a/sudoers.cat +++ b/sudoers.cat @@ -61,7 +61,7 @@ DDEESSCCRRIIPPTTIIOONN -1.6.8p7 February 5, 2005 1 +1.6.8p9 June, 20 2005 1 @@ -127,7 +127,7 @@ SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4) -1.6.8p7 February 5, 2005 2 +1.6.8p9 June, 20 2005 2 @@ -193,7 +193,7 @@ SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4) -1.6.8p7 February 5, 2005 3 +1.6.8p9 June, 20 2005 3 @@ -259,7 +259,7 @@ SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4) -1.6.8p7 February 5, 2005 4 +1.6.8p9 June, 20 2005 4 @@ -325,7 +325,7 @@ SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4) -1.6.8p7 February 5, 2005 5 +1.6.8p9 June, 20 2005 5 @@ -391,7 +391,7 @@ SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4) -1.6.8p7 February 5, 2005 6 +1.6.8p9 June, 20 2005 6 @@ -457,7 +457,7 @@ SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4) -1.6.8p7 February 5, 2005 7 +1.6.8p9 June, 20 2005 7 @@ -523,7 +523,7 @@ SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4) -1.6.8p7 February 5, 2005 8 +1.6.8p9 June, 20 2005 8 @@ -589,7 +589,7 @@ SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4) -1.6.8p7 February 5, 2005 9 +1.6.8p9 June, 20 2005 9 @@ -655,7 +655,7 @@ SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4) -1.6.8p7 February 5, 2005 10 +1.6.8p9 June, 20 2005 10 @@ -721,7 +721,7 @@ SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4) -1.6.8p7 February 5, 2005 11 +1.6.8p9 June, 20 2005 11 @@ -787,7 +787,7 @@ SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4) -1.6.8p7 February 5, 2005 12 +1.6.8p9 June, 20 2005 12 @@ -853,7 +853,7 @@ SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4) -1.6.8p7 February 5, 2005 13 +1.6.8p9 June, 20 2005 13 @@ -919,7 +919,7 @@ SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4) -1.6.8p7 February 5, 2005 14 +1.6.8p9 June, 20 2005 14 @@ -985,7 +985,7 @@ SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4) -1.6.8p7 February 5, 2005 15 +1.6.8p9 June, 20 2005 15 @@ -1051,7 +1051,7 @@ SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4) -1.6.8p7 February 5, 2005 16 +1.6.8p9 June, 20 2005 16 @@ -1117,7 +1117,7 @@ SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4) -1.6.8p7 February 5, 2005 17 +1.6.8p9 June, 20 2005 17 @@ -1183,7 +1183,7 @@ EEXXAAMMPPLLEESS -1.6.8p7 February 5, 2005 18 +1.6.8p9 June, 20 2005 18 @@ -1249,7 +1249,7 @@ SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4) -1.6.8p7 February 5, 2005 19 +1.6.8p9 June, 20 2005 19 @@ -1315,7 +1315,7 @@ SUDOERS(4) MAINTENANCE COMMANDS SUDOERS(4) -1.6.8p7 February 5, 2005 20 +1.6.8p9 June, 20 2005 20 @@ -1381,7 +1381,7 @@ PPRREEVVEENNTTIINNGG SSHHEELLLL EESSCCAAPPEESS -1.6.8p7 February 5, 2005 21 +1.6.8p9 June, 20 2005 21 @@ -1447,7 +1447,7 @@ CCAAVVEEAATTSS -1.6.8p7 February 5, 2005 22 +1.6.8p9 June, 20 2005 22 @@ -1513,6 +1513,6 @@ DDIISSCCLLAAIIMMEERR -1.6.8p7 February 5, 2005 23 +1.6.8p9 June, 20 2005 23 diff --git a/sudoers.man.in b/sudoers.man.in index 357f54d..3acbd3a 100644 --- a/sudoers.man.in +++ b/sudoers.man.in @@ -149,7 +149,7 @@ .\" ======================================================================== .\" .IX Title "SUDOERS @mansectform@" -.TH SUDOERS @mansectform@ "February 5, 2005" "1.6.8p7" "MAINTENANCE COMMANDS" +.TH SUDOERS @mansectform@ "June 20, 2005" "1.6.8p9" "MAINTENANCE COMMANDS" .SH "NAME" sudoers \- list of which users may execute what .SH "DESCRIPTION" diff --git a/version.h b/version.h index e7e46ff..12c46a2 100644 --- a/version.h +++ b/version.h @@ -23,6 +23,6 @@ #ifndef _SUDO_VERSION_H #define _SUDO_VERSION_H -static const char version[] = "1.6.8p7"; +static const char version[] = "1.6.8p9"; #endif /* _SUDO_VERSION_H */ diff --git a/visudo.cat b/visudo.cat index dfcd8bc..6eb2a7f 100644 --- a/visudo.cat +++ b/visudo.cat @@ -61,7 +61,7 @@ OOPPTTIIOONNSS -1.6.8p7 February 5, 2005 1 +1.6.8p9 June, 20 2005 1 @@ -127,7 +127,7 @@ DDIIAAGGNNOOSSTTIICCSS -1.6.8p7 February 5, 2005 2 +1.6.8p9 June, 20 2005 2 @@ -193,6 +193,6 @@ DDIISSCCLLAAIIMMEERR -1.6.8p7 February 5, 2005 3 +1.6.8p9 June, 20 2005 3 diff --git a/visudo.man.in b/visudo.man.in index 3593696..26f6e32 100644 --- a/visudo.man.in +++ b/visudo.man.in @@ -149,7 +149,7 @@ .\" ======================================================================== .\" .IX Title "VISUDO @mansectsu@" -.TH VISUDO @mansectsu@ "February 5, 2005" "1.6.8p7" "MAINTENANCE COMMANDS" +.TH VISUDO @mansectsu@ "June 20, 2005" "1.6.8p9" "MAINTENANCE COMMANDS" .SH "NAME" visudo \- edit the sudoers file .SH "SYNOPSIS" -- 2.30.2