Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package sudo for openSUSE:Factory checked in 
at 2023-01-24 19:41:58
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/sudo (Old)
 and      /work/SRC/openSUSE:Factory/.sudo.new.32243 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "sudo"

Tue Jan 24 19:41:58 2023 rev:140 rq:1060308 version:1.9.12p2

Changes:
--------
--- /work/SRC/openSUSE:Factory/sudo/sudo.changes        2022-11-23 
09:47:32.902866767 +0100
+++ /work/SRC/openSUSE:Factory/.sudo.new.32243/sudo.changes     2023-01-24 
20:35:32.805380732 +0100
@@ -1,0 +2,24 @@
+Thu Jan 19 03:39:52 UTC 2023 - Jason Sikes <jsi...@suse.com>
+
+- Update to 1.9.12p2:
+  * Fixes bsc#1207082
+  * Changes in 1.9.12p2:
+    Fixed a compilation error on Linux/aarch64. GitHub issue #197.
+
+    Fixed a potential crash introduced in the fix GitHub issue #134.
+      If a user’s sudoers entry did not have any RunAs user’s set,
+      running sudo -U otheruser -l would dereference a NULL pointer.
+
+    Fixed a bug introduced in sudo 1.9.12 that could prevent sudo
+      from creating a I/O files when the iolog_file sudoers setting
+      contains six or more Xs.
+
+    Fixed a compilation issue on AIX with the native compiler.
+      GitHub issue #231.
+
+    Fixed CVE-2023-22809, a flaw in sudo’s -e option (aka sudoedit)
+      that could allow a malicious user with sudoedit privileges to
+      edit arbitrary files. For more information, see Sudoedit can
+      edit arbitrary files.
+
+-------------------------------------------------------------------

Old:
----
  sudo-1.9.12p1.tar.gz
  sudo-1.9.12p1.tar.gz.sig

New:
----
  sudo-1.9.12p2.tar.gz
  sudo-1.9.12p2.tar.gz.sig

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ sudo.spec ++++++
--- /var/tmp/diff_new_pack.2utnP9/_old  2023-01-24 20:35:33.661385165 +0100
+++ /var/tmp/diff_new_pack.2utnP9/_new  2023-01-24 20:35:33.669385206 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package sudo
 #
-# Copyright (c) 2022 SUSE LLC
+# Copyright (c) 2023 SUSE LLC
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -17,7 +17,7 @@
 
 
 Name:           sudo
-Version:        1.9.12p1
+Version:        1.9.12p2
 Release:        0
 Summary:        Execute some commands as root
 License:        ISC

++++++ sudo-1.9.12p1.tar.gz -> sudo-1.9.12p2.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sudo-1.9.12p1/ChangeLog new/sudo-1.9.12p2/ChangeLog
--- old/sudo-1.9.12p1/ChangeLog 2022-11-04 21:32:10.000000000 +0100
+++ new/sudo-1.9.12p2/ChangeLog 2023-01-18 15:20:22.000000000 +0100
@@ -1,8 +1,67 @@
+2023-01-18  Todd C. Miller  <todd.mil...@sudo.ws>
+
+       * .hgtags:
+       Added tag SUDO_1_9_12p2 for changeset 05149e3ee7db
+       [8763a9e70ddd] [tip] <1.9>
+
+2023-01-17  Todd C. Miller  <todd.mil...@sudo.ws>
+
+       * configure, configure.ac:
+       Add back the linker check for -fstack-clash-protection. This is
+       expected to fix GitHub issue #231.
+       [40bda374ae08] <1.9>
+
+2023-01-12  Todd C. Miller  <todd.mil...@sudo.ws>
+
+       * lib/iolog/iolog_mkdtemp.c:
+       iolog_mkdtemp: fix pasto in last commit Set mode to iolog_dirmode,
+       not iolog_filemode
+       [9926f1c92729] <1.9>
+
+       * NEWS, configure, configure.ac:
+       Sudo 1.9.2p2
+       [05149e3ee7db] [SUDO_1_9_12p2] <1.9>
+
+       * plugins/sudoers/editor.c, plugins/sudoers/sudoers.c,
+       plugins/sudoers/visudo.c:
+       sudoedit: do not permit editor arguments to include "--"
+       (CVE-2023-22809) We use "--" to separate the editor and arguments
+       from the files to edit. If the editor arguments include "--", sudo
+       can be tricked into allowing the user to edit a file not permitted
+       by the security policy. Thanks to Matthieu Barjole and Victor
+       Cutillas of Synacktiv (https://synacktiv.com) for finding this bug.
+       [eb7f573a4a92] <1.9>
+
+2023-01-03  Todd C. Miller  <todd.mil...@sudo.ws>
+
+       * lib/iolog/iolog_mkdtemp.c:
+       iolog_mkdtemp: fix failure when the specified path contains
+       subdirectories. This fixes a bug introduced in sudo 1.9.12.
+       [ac86f3b0d94b] <1.9>
+
+2022-12-07  Todd C. Miller  <todd.mil...@sudo.ws>
+
+       * plugins/sudoers/parse.c:
+       Fix potential crash introduced in the fix for GitHub issue #134. If
+       a user's sudoers entry did not have any RunAs user's set, running
+       "sudo -U otheruser -l" would dereference a NULL pointer. We need to
+       compare the default RunAs user if the sudoers entry does not specify
+       one explicitly. Problem reported by Andreas Mueller who also
+       suggested a different solution in PR #219.
+       [360e04f13024] <1.9>
+
+2022-11-10  Todd C. Miller  <todd.mil...@sudo.ws>
+
+       * src/exec_ptrace.h:
+       Include linux/elf.h, not elf.h to make sure we get
+       NT_ARM_SYSTEM_CALL. The NT_PRSTATUS define is present in both files.
+       [161f41f644ca] <1.9>
+
 2022-11-04  Todd C. Miller  <todd.mil...@sudo.ws>
 
        * .hgtags:
        Added tag SUDO_1_9_12p1 for changeset 39cf4d8052ff
-       [28ed2d994f40] [tip] <1.9>
+       [28ed2d994f40] <1.9>
 
        * NEWS, configure, configure.ac:
        Merge sudo 1.9.12p1 from tip.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sudo-1.9.12p1/NEWS new/sudo-1.9.12p2/NEWS
--- old/sudo-1.9.12p1/NEWS      2022-11-04 21:26:40.000000000 +0100
+++ new/sudo-1.9.12p2/NEWS      2023-01-18 15:19:49.000000000 +0100
@@ -1,3 +1,22 @@
+What's new in Sudo 1.9.12p2
+
+ * Fixed a compilation error on Linux/aarch64.  GitHub issue #197.
+
+ * Fixed a potential crash introduced in the fix for GitHub issue #134.
+   If a user's sudoers entry did not have any RunAs user's set,
+   running "sudo -U otheruser -l" would dereference a NULL pointer.
+
+ * Fixed a bug introduced in sudo 1.9.12 that could prevent sudo
+   from creating a I/O files when the "iolog_file" sudoers setting
+   contains six or more Xs.
+
+ * Fixed a compilation issue on AIX with the native compiler.
+   GitHub issue #231.
+
+ * Fixed CVE-2023-22809, a flaw in sudo's -e option (aka sudoedit)
+   that could allow a malicious user with sudoedit privileges to
+   edit arbitrary files.
+
 What's new in Sudo 1.9.12p1
 
  * Sudo's configure script now does a better job of detecting when
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sudo-1.9.12p1/configure new/sudo-1.9.12p2/configure
--- old/sudo-1.9.12p1/configure 2022-11-04 21:26:40.000000000 +0100
+++ new/sudo-1.9.12p2/configure 2023-01-18 14:56:03.000000000 +0100
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for sudo 1.9.12p1.
+# Generated by GNU Autoconf 2.71 for sudo 1.9.12p2.
 #
 # Report bugs to <https://bugzilla.sudo.ws/>.
 #
@@ -621,8 +621,8 @@
 # Identity of this package.
 PACKAGE_NAME='sudo'
 PACKAGE_TARNAME='sudo'
-PACKAGE_VERSION='1.9.12p1'
-PACKAGE_STRING='sudo 1.9.12p1'
+PACKAGE_VERSION='1.9.12p2'
+PACKAGE_STRING='sudo 1.9.12p2'
 PACKAGE_BUGREPORT='https://bugzilla.sudo.ws/'
 PACKAGE_URL=''
 
@@ -1640,7 +1640,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures sudo 1.9.12p1 to adapt to many kinds of systems.
+\`configure' configures sudo 1.9.12p2 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1706,7 +1706,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of sudo 1.9.12p1:";;
+     short | recursive ) echo "Configuration of sudo 1.9.12p2:";;
    esac
   cat <<\_ACEOF
 
@@ -1996,7 +1996,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-sudo configure 1.9.12p1
+sudo configure 1.9.12p2
 generated by GNU Autoconf 2.71
 
 Copyright (C) 2021 Free Software Foundation, Inc.
@@ -2653,7 +2653,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by sudo $as_me 1.9.12p1, which was
+It was created by sudo $as_me 1.9.12p2, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   $ $0$ac_configure_args_raw
@@ -31915,7 +31915,7 @@
            cat confdefs.h - <<_ACEOF >conftest.$ac_ext
 /* end confdefs.h.  */
 
-               int main(int argc, char *argv[]) { char buf[16384], *src = 
argv[0], *dst = buf; while ((*dst++ = *src++) != '\0'); return buf[argc]; }
+               int main(int argc, char *argv[]) { char buf[16384], *src = 
argv[0], *dst = buf; while ((*dst++ = *src++) != '\0') { continue; } return 
buf[argc]; }
 
 _ACEOF
 if ac_fn_c_try_compile "$LINENO"
@@ -31932,6 +31932,41 @@
 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: 
$sudo_cv_check_cflags___fstack_clash_protection" >&5
 printf "%s\n" "$sudo_cv_check_cflags___fstack_clash_protection" >&6; }
     if test X"$sudo_cv_check_cflags___fstack_clash_protection" = X"yes"; then
+       { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether the 
linker accepts -fstack-clash-protection" >&5
+printf %s "checking whether the linker accepts -fstack-clash-protection... " 
>&6; }
+if test ${ax_cv_check_ldflags___fstack_clash_protection+y}
+then :
+  printf %s "(cached) " >&6
+else $as_nop
+
+  ax_check_save_flags=$LDFLAGS
+  LDFLAGS="$LDFLAGS  -fstack-clash-protection"
+  cat confdefs.h - <<_ACEOF >conftest.$ac_ext
+/* end confdefs.h.  */
+
+int
+main (void)
+{
+
+  ;
+  return 0;
+}
+_ACEOF
+if ac_fn_c_try_link "$LINENO"
+then :
+  ax_cv_check_ldflags___fstack_clash_protection=yes
+else $as_nop
+  ax_cv_check_ldflags___fstack_clash_protection=no
+fi
+rm -f core conftest.err conftest.$ac_objext conftest.beam \
+    conftest$ac_exeext conftest.$ac_ext
+  LDFLAGS=$ax_check_save_flags
+fi
+{ printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: 
$ax_cv_check_ldflags___fstack_clash_protection" >&5
+printf "%s\n" "$ax_cv_check_ldflags___fstack_clash_protection" >&6; }
+if test x"$ax_cv_check_ldflags___fstack_clash_protection" = xyes
+then :
+
 
 if test ${HARDENING_CFLAGS+y}
 then :
@@ -31998,6 +32033,11 @@
 
 fi
 
+
+else $as_nop
+  :
+fi
+
     fi
 
     { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking whether C compiler 
accepts -fcf-protection" >&5
@@ -33148,7 +33188,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by sudo $as_me 1.9.12p1, which was
+This file was extended by sudo $as_me 1.9.12p2, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -33216,7 +33256,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config='$ac_cs_config_escaped'
 ac_cs_version="\\
-sudo config.status 1.9.12p1
+sudo config.status 1.9.12p2
 configured by $0, generated by GNU Autoconf 2.71,
   with options \\"\$ac_cs_config\\"
 
@@ -35009,7 +35049,6 @@
 
 
 
-
 
 
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sudo-1.9.12p1/configure.ac 
new/sudo-1.9.12p2/configure.ac
--- old/sudo-1.9.12p1/configure.ac      2022-11-04 21:26:40.000000000 +0100
+++ new/sudo-1.9.12p2/configure.ac      2023-01-18 14:56:03.000000000 +0100
@@ -18,7 +18,7 @@
 dnl OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 dnl
 AC_PREREQ([2.70])
-AC_INIT([sudo], [1.9.12p1], [https://bugzilla.sudo.ws/], [sudo])
+AC_INIT([sudo], [1.9.12p2], [https://bugzilla.sudo.ws/], [sudo])
 AC_CONFIG_HEADERS([config.h pathnames.h])
 AC_CONFIG_SRCDIR([src/sudo.c])
 AC_CONFIG_AUX_DIR([scripts])
@@ -4966,14 +4966,16 @@
            _CFLAGS="$CFLAGS"
            CFLAGS="$CFLAGS -fstack-clash-protection"
            AC_COMPILE_IFELSE([
-               AC_LANG_SOURCE([[int main(int argc, char *argv[]) { char 
buf[16384], *src = argv[0], *dst = buf; while ((*dst++ = *src++) != '\0'); 
return buf[argc]; }]])
+               AC_LANG_SOURCE([[int main(int argc, char *argv[]) { char 
buf[16384], *src = argv[0], *dst = buf; while ((*dst++ = *src++) != '\0') { 
continue; } return buf[argc]; }]])
            ], [sudo_cv_check_cflags___fstack_clash_protection=yes], 
[sudo_cv_check_cflags___fstack_clash_protection=no])
            CFLAGS="$_CFLAGS"
        ]
     )
     if test X"$sudo_cv_check_cflags___fstack_clash_protection" = X"yes"; then
-       AX_APPEND_FLAG([-fstack-clash-protection], [HARDENING_CFLAGS])
-       AX_APPEND_FLAG([-Wc,-fstack-clash-protection], [HARDENING_LDFLAGS])
+       AX_CHECK_LINK_FLAG([-fstack-clash-protection], [
+           AX_APPEND_FLAG([-fstack-clash-protection], [HARDENING_CFLAGS])
+           AX_APPEND_FLAG([-Wc,-fstack-clash-protection], [HARDENING_LDFLAGS])
+       ])
     fi
 
     AX_CHECK_COMPILE_FLAG([-fcf-protection], [
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sudo-1.9.12p1/lib/iolog/iolog_mkdtemp.c 
new/sudo-1.9.12p2/lib/iolog/iolog_mkdtemp.c
--- old/sudo-1.9.12p1/lib/iolog/iolog_mkdtemp.c 2022-10-22 01:04:06.000000000 
+0200
+++ new/sudo-1.9.12p2/lib/iolog/iolog_mkdtemp.c 2023-01-13 03:16:48.000000000 
+0100
@@ -53,6 +53,7 @@
     const uid_t iolog_uid = iolog_get_uid();
     const gid_t iolog_gid = iolog_get_gid();
     bool ok = false, uid_changed = false;
+    char *dir = sudo_basename(path);
     mode_t omask;
     int dfd;
     debug_decl(iolog_mkdtemp, SUDO_DEBUG_UTIL);
@@ -74,11 +75,11 @@
        /* We cannot retry mkdtemp() so always open as iolog user */
        if (!uid_changed)
            uid_changed = iolog_swapids(false);
-       if (mkdtempat(dfd, path) == NULL) {
+       if (mkdtempat(dfd, dir) == NULL) {
            sudo_warn(U_("unable to mkdir %s"), path);
            ok = false;
        } else {
-           if (chmod(path, iolog_dirmode) != 0) {
+           if (fchmodat(dfd, dir, iolog_dirmode, 0) != 0) {
                /* Not a fatal error, pre-existing mode is 0700. */
                sudo_warn(U_("unable to change mode of %s to 0%o"),
                    path, (unsigned int)iolog_dirmode);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sudo-1.9.12p1/plugins/sudoers/editor.c 
new/sudo-1.9.12p2/plugins/sudoers/editor.c
--- old/sudo-1.9.12p1/plugins/sudoers/editor.c  2022-10-22 01:04:06.000000000 
+0200
+++ new/sudo-1.9.12p2/plugins/sudoers/editor.c  2023-01-13 03:16:52.000000000 
+0100
@@ -131,7 +131,7 @@
     const char *tmp, *cp, *ep = NULL;
     const char *edend = ed + edlen;
     struct stat user_editor_sb;
-    int nargc;
+    int nargc = 0;
     debug_decl(resolve_editor, SUDOERS_DEBUG_UTIL);
 
     /*
@@ -149,10 +149,7 @@
     /* If we can't find the editor in the user's PATH, give up. */
     if (find_path(editor, &editor_path, &user_editor_sb, getenv("PATH"), NULL,
            0, allowlist) != FOUND) {
-       sudoers_gc_remove(GC_PTR, editor);
-       free(editor);
-       errno = ENOENT;
-       debug_return_str(NULL);
+       goto bad;
     }
 
     /* Count rest of arguments and allocate editor argv. */
@@ -173,6 +170,17 @@
        nargv[nargc] = copy_arg(cp, ep - cp);
        if (nargv[nargc] == NULL)
            goto oom;
+
+       /*
+        * We use "--" to separate the editor and arguments from the files
+        * to edit.  The editor arguments themselves may not contain "--".
+        */
+       if (strcmp(nargv[nargc], "--") == 0) {
+           sudo_warnx(U_("ignoring editor: %.*s"), (int)edlen, ed);
+           sudo_warnx("%s", U_("editor arguments may not contain \"--\""));
+           errno = EINVAL;
+           goto bad;
+       }
     }
     if (nfiles != 0) {
        nargv[nargc++] = (char *)"--";
@@ -186,6 +194,7 @@
     debug_return_str(editor_path);
 oom:
     sudo_warnx(U_("%s: %s"), __func__, U_("unable to allocate memory"));
+bad:
     sudoers_gc_remove(GC_PTR, editor);
     free(editor);
     free(editor_path);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sudo-1.9.12p1/plugins/sudoers/parse.c 
new/sudo-1.9.12p2/plugins/sudoers/parse.c
--- old/sudo-1.9.12p1/plugins/sudoers/parse.c   2022-10-22 01:04:06.000000000 
+0200
+++ new/sudo-1.9.12p2/plugins/sudoers/parse.c   2023-01-12 23:52:49.000000000 
+0100
@@ -35,6 +35,23 @@
 #include "sudo_lbuf.h"
 #include <gram.h>
 
+static int
+runas_matches_pw(struct sudoers_parse_tree *parse_tree,
+    const struct cmndspec *cs, const struct passwd *pw)
+{
+    debug_decl(runas_matches_pw, SUDOERS_DEBUG_PARSER);
+
+    if (cs->runasuserlist != NULL)
+       debug_return_int(userlist_matches(parse_tree, pw, cs->runasuserlist));
+
+    if (cs->runasgrouplist == NULL) {
+       /* No explicit runas user or group, use default. */
+       if (userpw_matches(def_runas_default, pw->pw_name, pw))
+           debug_return_int(ALLOW);
+    }
+    debug_return_int(UNSPEC);
+}
+
 /*
  * Look up the user in the sudoers parse tree for pseudo-commands like
  * list, verify and kill.
@@ -101,12 +118,10 @@
                        continue;
                    }
                    /* Runas user must match list user or root. */
-                   if (userlist_matches(nss->parse_tree, list_pw,
-                           cs->runasuserlist) == DENY) {
+                   if (runas_matches_pw(nss->parse_tree, cs, list_pw) == DENY)
                        continue;
-                   }
-                   if (root_pw == NULL || userlist_matches(nss->parse_tree,
-                           root_pw, cs->runasuserlist) != ALLOW) {
+                   if (root_pw == NULL || runas_matches_pw(nss->parse_tree,
+                           cs, root_pw) != ALLOW) {
                        continue;
                    }
                    if (cmnd_matches(nss->parse_tree, cs->cmnd, cs->runchroot,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sudo-1.9.12p1/plugins/sudoers/sudoers.c 
new/sudo-1.9.12p2/plugins/sudoers/sudoers.c
--- old/sudo-1.9.12p1/plugins/sudoers/sudoers.c 2022-10-22 01:04:06.000000000 
+0200
+++ new/sudo-1.9.12p2/plugins/sudoers/sudoers.c 2023-01-13 03:16:52.000000000 
+0100
@@ -792,21 +792,32 @@
 
     /* Note: must call audit before uid change. */
     if (ISSET(sudo_mode, MODE_EDIT)) {
+       const char *env_editor = NULL;
        char **edit_argv;
        int edit_argc;
-       const char *env_editor;
 
        free(safe_cmnd);
        safe_cmnd = find_editor(NewArgc - 1, NewArgv + 1, &edit_argc,
            &edit_argv, NULL, &env_editor);
        if (safe_cmnd == NULL) {
-           if (errno != ENOENT)
+           switch (errno) {
+           case ENOENT:
+               audit_failure(NewArgv, N_("%s: command not found"),
+                   env_editor ? env_editor : def_editor);
+               sudo_warnx(U_("%s: command not found"),
+                   env_editor ? env_editor : def_editor);
+               goto bad;
+           case EINVAL:
+               if (def_env_editor && env_editor != NULL) {
+                   /* User tried to do something funny with the editor. */
+                   log_warningx(SLOG_NO_STDERR|SLOG_AUDIT|SLOG_SEND_MAIL,
+                       "invalid user-specified editor: %s", env_editor);
+                   goto bad;
+               }
+               FALLTHROUGH;
+           default:
                goto done;
-           audit_failure(NewArgv, N_("%s: command not found"),
-               env_editor ? env_editor : def_editor);
-           sudo_warnx(U_("%s: command not found"),
-               env_editor ? env_editor : def_editor);
-           goto bad;
+           }
        }
        /* find_editor() already g/c'd edit_argv[] */
        if (NewArgv != saved_argv) {
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sudo-1.9.12p1/plugins/sudoers/visudo.c 
new/sudo-1.9.12p2/plugins/sudoers/visudo.c
--- old/sudo-1.9.12p1/plugins/sudoers/visudo.c  2022-10-22 01:04:06.000000000 
+0200
+++ new/sudo-1.9.12p2/plugins/sudoers/visudo.c  2023-01-13 03:16:52.000000000 
+0100
@@ -365,7 +365,7 @@
 get_editor(int *editor_argc, char ***editor_argv)
 {
     char *editor_path = NULL, **allowlist = NULL;
-    const char *env_editor;
+    const char *env_editor = NULL;
     static const char *files[] = { "+1", "sudoers" };
     unsigned int allowlist_len = 0;
     debug_decl(get_editor, SUDOERS_DEBUG_UTIL);
@@ -399,7 +399,11 @@
     if (editor_path == NULL) {
        if (def_env_editor && env_editor != NULL) {
            /* We are honoring $EDITOR so this is a fatal error. */
-           sudo_fatalx(U_("specified editor (%s) doesn't exist"), env_editor);
+           if (errno == ENOENT) {
+               sudo_warnx(U_("specified editor (%s) doesn't exist"),
+                   env_editor);
+           }
+           exit(EXIT_FAILURE);
        }
        sudo_fatalx(U_("no editor found (editor path = %s)"), def_editor);
     }
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/sudo-1.9.12p1/src/exec_ptrace.h 
new/sudo-1.9.12p2/src/exec_ptrace.h
--- old/sudo-1.9.12p1/src/exec_ptrace.h 2022-10-22 01:04:06.000000000 +0200
+++ new/sudo-1.9.12p2/src/exec_ptrace.h 2023-01-18 14:53:40.000000000 +0100
@@ -17,12 +17,12 @@
 #ifndef SUDO_EXEC_PTRACE_H
 #define SUDO_EXEC_PTRACE_H
 
-#include <elf.h>
 #include <sys/prctl.h>
 #include <sys/ptrace.h>
 #include <sys/user.h>
 #include <asm/unistd.h>
 #include <linux/audit.h>
+#include <linux/elf.h>
 #include <linux/ptrace.h>
 #include <linux/seccomp.h>
 #include <linux/filter.h>

Reply via email to