diff --git a/Fix-compilation-error-on-sw64-arch.patch b/Fix-compilation-error-on-sw64-arch.patch new file mode 100644 index 0000000000000000000000000000000000000000..d545087d35e23aaf53744ce3e1c852edac770a58 --- /dev/null +++ b/Fix-compilation-error-on-sw64-arch.patch @@ -0,0 +1,81 @@ +From 505355cce4fcc2c8f1103a88dd707758cba4907f Mon Sep 17 00:00:00 2001 +From: zhangzhixin +Date: Wed, 12 Apr 2023 11:52:01 +0800 +Subject: [PATCH] Fix compilation error on sw64 arch. + +--- + include/compat/endian.h | 2 +- + plugins/sudoers/auth/secureware.c | 6 +++--- + plugins/sudoers/getspwuid.c | 4 ++-- + 3 files changed, 6 insertions(+), 6 deletions(-) + +diff --git a/include/compat/endian.h b/include/compat/endian.h +index fe6ee83..76ce6e9 100644 +--- a/include/compat/endian.h ++++ b/include/compat/endian.h +@@ -51,7 +51,7 @@ + # define BYTE_ORDER LITTLE_ENDIAN + # elif defined(_BIG_ENDIAN) || defined(__BIG_ENDIAN__) + # define BYTE_ORDER BIG_ENDIAN +-# elif defined(__alpha__) || defined(__alpha) || defined(__amd64) || \ ++# elif defined(__alpha__) || defined(__alpha) || defined(__sw_64__) || defined(__sw_64) || defined(__amd64) || \ + defined(BIT_ZERO_ON_RIGHT) || defined(i386) || defined(__i386) || \ + defined(MIPSEL) || defined(_MIPSEL) || defined(ns32000) || \ + defined(__ns3200) || defined(sun386) || defined(vax) || \ +diff --git a/plugins/sudoers/auth/secureware.c b/plugins/sudoers/auth/secureware.c +index 49a4b4e..b47c0b8 100644 +--- a/plugins/sudoers/auth/secureware.c ++++ b/plugins/sudoers/auth/secureware.c +@@ -46,7 +46,7 @@ + #include "sudoers.h" + #include "sudo_auth.h" + +-#ifdef __alpha ++#if defined __alpha || defined __sw_64 + extern int crypt_type; + #endif + +@@ -59,7 +59,7 @@ sudo_secureware_init(struct passwd *pw, sudo_auth *auth) + if (auth->data != NULL) + debug_return_int(AUTH_SUCCESS); + +-#ifdef __alpha ++#if defined __alpha || defined __sw_64 + if (crypt_type == INT_MAX) + debug_return_int(AUTH_FAILURE); /* no shadow */ + #endif +@@ -81,7 +81,7 @@ sudo_secureware_verify(struct passwd *pw, const char *pass, sudo_auth *auth, str + if (pass[0] == '\0') + debug_return_int(pw_epasswd[0] ? AUTH_FAILURE : AUTH_SUCCESS); + +-#if defined(__alpha) ++#if defined(__alpha) || defined(__sw_64) + # ifdef HAVE_DISPCRYPT + epass = dispcrypt(pass, pw_epasswd, crypt_type); + # else +diff --git a/plugins/sudoers/getspwuid.c b/plugins/sudoers/getspwuid.c +index 650b3f3..f31dd5f 100644 +--- a/plugins/sudoers/getspwuid.c ++++ b/plugins/sudoers/getspwuid.c +@@ -51,7 +51,7 @@ + /* + * Exported for auth/secureware.c + */ +-#if defined(HAVE_GETPRPWNAM) && defined(__alpha) ++#if defined(HAVE_GETPRPWNAM) && (defined(__alpha) || defined(__sw_64)) + int crypt_type = INT_MAX; + #endif /* HAVE_GETPRPWNAM && __alpha */ + +@@ -87,7 +87,7 @@ sudo_getepw(const struct passwd *pw) + struct pr_passwd *spw; + + if ((spw = getprpwnam(pw->pw_name)) && spw->ufld.fd_encrypt) { +-# ifdef __alpha ++# if defined __alpha || defined __sw_64 + crypt_type = spw->ufld.fd_oldcrypt; + # endif /* __alpha */ + epw = spw->ufld.fd_encrypt; +-- +2.33.0 + + diff --git a/sudo.spec b/sudo.spec index e0799176c948e88611cac866941b2bdff0762a22..8258d197e9d8ac18ad17baf5f4eac60924cbac50 100644 --- a/sudo.spec +++ b/sudo.spec @@ -1,6 +1,6 @@ Name: sudo Version: 1.9.12p2 -Release: 4 +Release: 5 Summary: Allows restricted root access for specified users License: ISC URL: https://www.sudo.ws @@ -12,6 +12,7 @@ Source3: sudo-i Patch0: backport-CVE-2023-27320.patch Patch1: backport-CVE-2023-28486_CVE-2023-28487.patch +Patch2: Fix-compilation-error-on-sw64-arch.patch Buildroot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) Requires: pam @@ -156,6 +157,9 @@ chrpath -d $RPM_BUILD_ROOT/usr/libexec/sudo/* %exclude %{_pkgdocdir}/ChangeLog %changelog +* Wed Apr 12 2023 wangyu - 1.9.12p2-5 +- Fix compilation error on sw64 arch. + * Tue Mar 28 2023 wangcheng - 1.9.12p2-4 - Fix CVE-2023-28486 and CVE-2023-28487