Fix compilation error on sw64 arch.

This commit is contained in:
modric 2023-04-12 03:38:27 +00:00
parent 3578c8c127
commit 53aafc4954
2 changed files with 86 additions and 1 deletions

View File

@ -0,0 +1,81 @@
From 505355cce4fcc2c8f1103a88dd707758cba4907f Mon Sep 17 00:00:00 2001
From: zhangzhixin <zhixin.zhang@i-soft.com.cn>
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

View File

@ -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 <wangyu283@huawei.com> - 1.9.12p2-5
- Fix compilation error on sw64 arch.
* Tue Mar 28 2023 wangcheng <wangcheng156@huawei.com> - 1.9.12p2-4
- Fix CVE-2023-28486 and CVE-2023-28487