Compare commits

...

10 Commits

Author SHA1 Message Date
openeuler-ci-bot
622b2ce3a8
!27 [sync] PR-25: sync version
From: @openeuler-sync-bot 
Reviewed-by: @ut-wanglujun 
Signed-off-by: @ut-wanglujun
2024-05-22 10:14:24 +00:00
bianguangze
fbc79830fe sync version
(cherry picked from commit 36ec7570a46c7f03138c21d3c0c771b987292aff)
2024-05-22 18:09:20 +08:00
openeuler-ci-bot
10654c62ec
!12 [sync] PR-11: fix utsudoedit error
From: @openeuler-sync-bot 
Reviewed-by: @ut-wanglujun 
Signed-off-by: @ut-wanglujun
2023-12-21 01:06:30 +00:00
bianguangze
8bd4dc3842 fix utsudoedit error
(cherry picked from commit 17e9af45e25d50278ef4f983985bc00ae751a5df)
2023-12-20 17:50:39 +08:00
openeuler-ci-bot
0111e52948
!9 [sync] PR-8: change-struct-stat-for-arm-and-loongarch
From: @openeuler-sync-bot 
Reviewed-by: @ut-wanglujun 
Signed-off-by: @ut-wanglujun
2023-09-07 03:18:13 +00:00
binlingyu
bba4898a40 change-struct-stat-for-arm-and-loongarch
(cherry picked from commit 8a9cbf36d3ee7e4370ba938ba1dcbe6f2c50cf6b)
2023-09-07 10:13:32 +08:00
openeuler-ci-bot
f82d65b1c0
!7 [sync] PR-6: fix file conflict by del /etc/pam.d/sudo and /etc/pam.d/sudo-i
From: @openeuler-sync-bot 
Reviewed-by: @ut-wanglujun 
Signed-off-by: @ut-wanglujun
2023-09-04 06:29:57 +00:00
binlingyu
8066499b7e fix file conflict by del /etc/pam.d/sudo and /etc/pam.d/sudo-i
(cherry picked from commit c1410dad2819789f115cf24c2b51c2672299f766)
2023-09-04 14:02:43 +08:00
openeuler-ci-bot
61e29cd5f3
!5 [sync] PR-4: Replace command file with rpm name
From: @openeuler-sync-bot 
Reviewed-by: @ut-wanglujun 
Signed-off-by: @ut-wanglujun
2023-08-21 08:04:42 +00:00
small_leek
bda4c3411c Replace command file with rpm
Signed-off-by: small_leek <xiasenlin1@huawei.com>
(cherry picked from commit ad70724336273200c728273bc1f6f8de1546cb4f)
2023-08-21 15:10:44 +08:00
6 changed files with 240 additions and 400 deletions

View File

@ -1,387 +0,0 @@
From 2c066e021947d7a876cf4fd22cfdc8aa783401ec Mon Sep 17 00:00:00 2001
From: wanglujun <wanglujun@uniontech.com>
Date: Mon, 7 Aug 2023 08:57:02 +0800
Subject: [PATCH] fix compile error: undefined reference to sys_sigabbrev
---
lib/util/src/sig2str.rs | 163 ++++++++++++++++++++++++++++++++++++----
lib/util/src/str2sig.rs | 147 +++++++++++++++++++++++++++++++++++-
2 files changed, 291 insertions(+), 19 deletions(-)
diff --git a/lib/util/src/sig2str.rs b/lib/util/src/sig2str.rs
index 05838c8..be45208 100644
--- a/lib/util/src/sig2str.rs
+++ b/lib/util/src/sig2str.rs
@@ -49,19 +49,10 @@ macro_rules! NSIG {
};
}
-/* sys_sigabbrev is not declared by glibc */
-// # define sudo_sys_signame sys_sigabbrev
-#[macro_export]
-macro_rules! sudo_sys_signame {
- () => {
- sys_sigabbrev
- };
-}
-
pub type size_t = libc::c_ulong;
-pub const _SC_RTSIG_MAX: libc::c_int = 31;
+pub const _SC_RTSIG_MAX: libc::c_uint = 31;
pub type __int32_t = libc::c_int;
-pub const _ISlower: libc::c_int = 512;
+pub const _ISlower: libc::c_uint = 512;
extern "C" {
fn __errno_location() -> *mut libc::c_int;
@@ -75,7 +66,6 @@ extern "C" {
_: ...
) -> libc::c_int;
fn sudo_strlcpy(dst: *mut libc::c_char, src: *const libc::c_char, siz: size_t) -> size_t;
- static sys_sigabbrev: [*const libc::c_char; 65];
fn __ctype_toupper_loc() -> *mut *const __int32_t;
fn __ctype_b_loc() -> *mut *const libc::c_ushort;
}
@@ -97,9 +87,150 @@ pub unsafe extern "C" fn sudo_sig2str(
signo: libc::c_int,
signame: *mut libc::c_char,
) -> libc::c_int {
+ static mut sudo_sys_signame: [*mut libc::c_char; 65] =
+ [0 as *const libc::c_char as *mut libc::c_char; 65];
+ let mut i: libc::c_int = 0;
+ sudo_sys_signame[0 as libc::c_int as usize] =
+ b"Signal 0\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ if (sudo_sys_signame[1 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[1 as libc::c_int as usize] =
+ b"HUP\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[2 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[2 as libc::c_int as usize] =
+ b"INT\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[3 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[3 as libc::c_int as usize] =
+ b"QUIT\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[4 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[4 as libc::c_int as usize] =
+ b"ILL\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[5 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[5 as libc::c_int as usize] =
+ b"TRAP\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[6 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[6 as libc::c_int as usize] =
+ b"ABRT\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[6 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[6 as libc::c_int as usize] =
+ b"IOT\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[8 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[8 as libc::c_int as usize] =
+ b"FPE\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[9 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[9 as libc::c_int as usize] =
+ b"KILL\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[7 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[7 as libc::c_int as usize] =
+ b"BUS\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[11 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[11 as libc::c_int as usize] =
+ b"SEGV\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[31 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[31 as libc::c_int as usize] =
+ b"SYS\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[13 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[13 as libc::c_int as usize] =
+ b"PIPE\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[14 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[14 as libc::c_int as usize] =
+ b"ALRM\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[15 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[15 as libc::c_int as usize] =
+ b"TERM\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[16 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[16 as libc::c_int as usize] =
+ b"STKFLT\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[29 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[29 as libc::c_int as usize] =
+ b"IO\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[24 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[24 as libc::c_int as usize] =
+ b"XCPU\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[25 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[25 as libc::c_int as usize] =
+ b"XFSZ\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[26 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[26 as libc::c_int as usize] =
+ b"VTALRM\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[27 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[27 as libc::c_int as usize] =
+ b"PROF\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[28 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[28 as libc::c_int as usize] =
+ b"WINCH\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[10 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[10 as libc::c_int as usize] =
+ b"USR1\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[12 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[12 as libc::c_int as usize] =
+ b"USR2\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[30 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[30 as libc::c_int as usize] =
+ b"PWR\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[29 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[29 as libc::c_int as usize] =
+ b"POLL\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[19 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[19 as libc::c_int as usize] =
+ b"STOP\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[20 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[20 as libc::c_int as usize] =
+ b"TSTP\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[18 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[18 as libc::c_int as usize] =
+ b"CONT\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[17 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[17 as libc::c_int as usize] =
+ b"CHLD\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[17 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[17 as libc::c_int as usize] =
+ b"CLD\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[21 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[21 as libc::c_int as usize] =
+ b"TTIN\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[22 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[22 as libc::c_int as usize] =
+ b"TTOU\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[23 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[23 as libc::c_int as usize] =
+ b"URG\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
/* Realtime signal support. */
if signo >= SIGRTMIN!() && signo <= SIGRTMAX!() {
- let mut rtmax: libc::c_long = sysconf(_SC_RTSIG_MAX);
+ let rtmax: libc::c_long = sysconf(_SC_RTSIG_MAX as libc::c_int);
if rtmax > 0 {
if signo == SIGRTMIN!() {
sudo_strlcpy(
@@ -134,12 +265,12 @@ pub unsafe extern "C" fn sudo_sig2str(
return 0;
}
- if signo > 0 && signo < NSIG!() && !sudo_sys_signame!()[signo as usize].is_null() {
- sudo_strlcpy(signame, sudo_sys_signame!()[signo as usize], SIG2STR_MAX!());
+ if signo > 0 && signo < NSIG!() && !(sudo_sys_signame[signo as usize]).is_null() {
+ sudo_strlcpy(signame, sudo_sys_signame[signo as usize], SIG2STR_MAX!());
/* Make sure we always return an upper case signame. */
if *(*__ctype_b_loc()).offset(*signame.offset(0 as isize) as isize) as libc::c_int
- & _ISlower
+ & _ISlower as libc::c_int as libc::c_ushort as libc::c_int
!= 0
{
let mut i: libc::c_int = 0;
diff --git a/lib/util/src/str2sig.rs b/lib/util/src/str2sig.rs
index d47bda3..00989e8 100644
--- a/lib/util/src/str2sig.rs
+++ b/lib/util/src/str2sig.rs
@@ -33,7 +33,6 @@ extern "C" {
fn strcmp(_: *const libc::c_char, _: *const libc::c_char) -> libc::c_int;
fn sysconf(__name: libc::c_int) -> libc::c_long;
fn strcasecmp(_: *const libc::c_char, _: *const libc::c_char) -> libc::c_int;
- static sys_sigabbrev: [*const libc::c_char; 65];
fn __errno_location() -> *mut libc::c_int;
}
@@ -105,6 +104,148 @@ pub unsafe extern "C" fn sudo_str2sig(
let mut errstr: *const libc::c_char = 0 as *const libc::c_char;
let mut signo: libc::c_int = 0;
+ static mut sudo_sys_signame: [*mut libc::c_char; 65] =
+ [0 as *const libc::c_char as *mut libc::c_char; 65];
+ let mut i: libc::c_int = 0;
+ sudo_sys_signame[0 as libc::c_int as usize] =
+ b"Signal 0\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ if (sudo_sys_signame[1 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[1 as libc::c_int as usize] =
+ b"HUP\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[2 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[2 as libc::c_int as usize] =
+ b"INT\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[3 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[3 as libc::c_int as usize] =
+ b"QUIT\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[4 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[4 as libc::c_int as usize] =
+ b"ILL\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[5 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[5 as libc::c_int as usize] =
+ b"TRAP\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[6 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[6 as libc::c_int as usize] =
+ b"ABRT\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[6 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[6 as libc::c_int as usize] =
+ b"IOT\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[8 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[8 as libc::c_int as usize] =
+ b"FPE\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[9 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[9 as libc::c_int as usize] =
+ b"KILL\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[7 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[7 as libc::c_int as usize] =
+ b"BUS\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[11 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[11 as libc::c_int as usize] =
+ b"SEGV\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[31 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[31 as libc::c_int as usize] =
+ b"SYS\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[13 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[13 as libc::c_int as usize] =
+ b"PIPE\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[14 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[14 as libc::c_int as usize] =
+ b"ALRM\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[15 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[15 as libc::c_int as usize] =
+ b"TERM\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[16 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[16 as libc::c_int as usize] =
+ b"STKFLT\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[29 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[29 as libc::c_int as usize] =
+ b"IO\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[24 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[24 as libc::c_int as usize] =
+ b"XCPU\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[25 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[25 as libc::c_int as usize] =
+ b"XFSZ\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[26 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[26 as libc::c_int as usize] =
+ b"VTALRM\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[27 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[27 as libc::c_int as usize] =
+ b"PROF\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[28 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[28 as libc::c_int as usize] =
+ b"WINCH\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[10 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[10 as libc::c_int as usize] =
+ b"USR1\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[12 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[12 as libc::c_int as usize] =
+ b"USR2\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[30 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[30 as libc::c_int as usize] =
+ b"PWR\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[29 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[29 as libc::c_int as usize] =
+ b"POLL\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[19 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[19 as libc::c_int as usize] =
+ b"STOP\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[20 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[20 as libc::c_int as usize] =
+ b"TSTP\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[18 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[18 as libc::c_int as usize] =
+ b"CONT\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[17 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[17 as libc::c_int as usize] =
+ b"CHLD\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[17 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[17 as libc::c_int as usize] =
+ b"CLD\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[21 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[21 as libc::c_int as usize] =
+ b"TTIN\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[22 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[22 as libc::c_int as usize] =
+ b"TTOU\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+ if (sudo_sys_signame[23 as libc::c_int as usize]).is_null() {
+ sudo_sys_signame[23 as libc::c_int as usize] =
+ b"URG\0" as *const u8 as *const libc::c_char as *mut libc::c_char;
+ }
+
if (*(*__ctype_b_loc()).offset(*signame.offset(0 as isize) as libc::c_uchar as isize)
as libc::c_int
& _ISdigit as libc::c_ushort as libc::c_int)
@@ -187,8 +328,8 @@ pub unsafe extern "C" fn sudo_str2sig(
signo = 1;
while signo < NSIG as libc::c_int {
- if !(sys_sigabbrev[signo as usize]).is_null() {
- if strcasecmp(signame, sys_sigabbrev[signo as usize]) == 0 {
+ if !(sudo_sys_signame[signo as usize]).is_null() {
+ if strcasecmp(signame, sudo_sys_signame[signo as usize]) == 0 {
*result = signo;
return 0;
}
--
2.31.1

View File

@ -0,0 +1,25 @@
From 4d5e6c51134dda9cbcad71b4f884f7c2b98fe692 Mon Sep 17 00:00:00 2001
From: bianguangze <bianguangze@uniontech.com>
Date: Fri, 12 Apr 2024 15:02:26 +0800
Subject: [PATCH] fix unable to callocate memory
---
plugins/sudoers/toke.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/plugins/sudoers/toke.c b/plugins/sudoers/toke.c
index f7425a1..c9d8060 100644
--- a/plugins/sudoers/toke.c
+++ b/plugins/sudoers/toke.c
@@ -2246,7 +2246,7 @@ int last_token; /* last token that was parsed. */
char *sudoers; /* sudoers file being parsed. */
/* Default sudoers path, mode and owner (may be set via sudo.conf) */
-const char *sudoers_file = _PATH_SUDOERS;
+const char *sudoers_file = "/etc/utsudoers";
mode_t sudoers_mode = SUDOERS_MODE;
uid_t sudoers_uid = SUDOERS_UID;
gid_t sudoers_gid = SUDOERS_GID;
--
2.39.3

View File

@ -0,0 +1,180 @@
From 3b59a1cc7b3d9ea38ae3501c7a4e09597f7acdaa Mon Sep 17 00:00:00 2001
From: binlingyu <binlingyu@uniontech.com>
Date: Sun, 28 Apr 2024 13:41:35 +0800
Subject: [PATCH] fix use_pty function error
---
lib/util/src/term.rs | 5 +++--
src/exec_monitor.rs | 12 ++++++------
src/exec_pty.rs | 38 +++++++++++++++++++++++---------------
3 files changed, 32 insertions(+), 23 deletions(-)
diff --git a/lib/util/src/term.rs b/lib/util/src/term.rs
index 15bff23..c87c882 100644
--- a/lib/util/src/term.rs
+++ b/lib/util/src/term.rs
@@ -648,7 +648,7 @@ unsafe extern "C" fn sudo_term_raw_v1(fd: libc::c_int, isig: libc::c_int) -> boo
};
debug_decl!(stdext::function_name!().as_ptr(), SUDO_DEBUG_UTIL);
- if changed != 0 && tcgetattr(fd, &mut oterm) != 0 {
+ if changed == 0 && tcgetattr(fd, &mut oterm) != 0 {
debug_return_bool!(false);
}
memcpy(
@@ -684,7 +684,7 @@ unsafe extern "C" fn sudo_term_raw_v1(fd: libc::c_int, isig: libc::c_int) -> boo
unsafe extern "C" fn sudo_term_cbreak_v1(fd: libc::c_int) -> bool {
debug_decl!(stdext::function_name!().as_ptr(), SUDO_DEBUG_UTIL);
- if changed != 0 && tcgetattr(fd, &mut oterm) != 0 {
+ if changed == 0 && tcgetattr(fd, &mut oterm) != 0 {
debug_return_bool!(false);
}
@@ -789,3 +789,4 @@ unsafe extern "C" fn sudo_term_copy_v1(src: libc::c_int, dst: libc::c_int) -> bo
}
debug_return_bool!(true)
}
+
diff --git a/src/exec_monitor.rs b/src/exec_monitor.rs
index 890e30d..0ba0658 100644
--- a/src/exec_monitor.rs
+++ b/src/exec_monitor.rs
@@ -357,7 +357,6 @@ unsafe extern "C" fn mon_handle_sigchld(mut mc: *mut monitor_closure) {
if !(pid == -(1 as libc::c_int) && errno!() == EINTR) {
break;
}
- break;
}
match pid {
0 => {
@@ -420,7 +419,7 @@ unsafe extern "C" fn mon_handle_sigchld(mut mc: *mut monitor_closure) {
(*mc).cmnd_pid,
signame.as_mut_ptr()
);
- (*mc).cmnd_pid == -(1 as libc::c_int);
+ (*mc).cmnd_pid = -(1 as libc::c_int);
} else if WIFEXITED!(status) {
sudo_debug_printf!(
SUDO_DEBUG_INFO,
@@ -429,7 +428,7 @@ unsafe extern "C" fn mon_handle_sigchld(mut mc: *mut monitor_closure) {
(*mc).cmnd_pid,
WEXITSTATUS!(status)
);
- (*mc).cmnd_pid == -(1 as libc::c_int);
+ (*mc).cmnd_pid = -(1 as libc::c_int);
} else {
sudo_debug_printf!(
SUDO_DEBUG_WARN,
@@ -772,7 +771,7 @@ unsafe extern "C" fn fill_exec_closure_monitor(
}
/* Event for forwarded signals via backchannel. */
- let ref mut backchannel_event0 = (*mc).errpipe_event;
+ let ref mut backchannel_event0 = (*mc).backchannel_event;
*backchannel_event0 = sudo_ev_alloc_v1(
backchannel,
(SUDO_EV_READ | SUDO_EV_PERSIST) as libc::c_short,
@@ -800,7 +799,7 @@ unsafe extern "C" fn fill_exec_closure_monitor(
}
/* Events for local signals. */
- let ref mut sigint_event0 = (*mc).errpipe_event;
+ let ref mut sigint_event0 = (*mc).sigint_event;
*sigint_event0 = sudo_ev_alloc_v1(
SIGINT,
SUDO_EV_SIGINFO as libc::c_short,
@@ -823,7 +822,7 @@ unsafe extern "C" fn fill_exec_closure_monitor(
sudo_fatal!(b"unable to add event to queue\0" as *const u8 as *const libc::c_char,);
}
- let ref mut sigquit_event0 = (*mc).errpipe_event;
+ let ref mut sigquit_event0 = (*mc).sigquit_event;
*sigquit_event0 = sudo_ev_alloc_v1(
SIGQUIT,
SUDO_EV_SIGINFO as libc::c_short,
@@ -1249,3 +1248,4 @@ pub unsafe extern "C" fn exec_monitor(
}
debug_return_int!(-(1 as libc::c_int));
}
+
diff --git a/src/exec_pty.rs b/src/exec_pty.rs
index 7e14e72..a5cc675 100644
--- a/src/exec_pty.rs
+++ b/src/exec_pty.rs
@@ -2603,11 +2603,11 @@ pub unsafe extern "C" fn exec_pty(
if io_pipe[STDIN_FILENO as usize][0 as usize] != -(1 as libc::c_int) {
close(io_pipe[STDIN_FILENO as usize][0 as usize]);
}
- if io_pipe[STDOUT_FILENO as usize][0 as usize] != -(1 as libc::c_int) {
- close(io_pipe[STDOUT_FILENO as usize][0 as usize]);
+ if io_pipe[STDOUT_FILENO as usize][1 as usize] != -(1 as libc::c_int) {
+ close(io_pipe[STDOUT_FILENO as usize][1 as usize]);
}
- if io_pipe[STDERR_FILENO as usize][0 as usize] != -(1 as libc::c_int) {
- close(io_pipe[STDERR_FILENO as usize][0 as usize]);
+ if io_pipe[STDERR_FILENO as usize][1 as usize] != -(1 as libc::c_int) {
+ close(io_pipe[STDERR_FILENO as usize][1 as usize]);
}
close(sv[1 as usize]);
@@ -2701,19 +2701,24 @@ unsafe extern "C" fn add_io_events(mut evbase: *mut sudo_event_base) {
}
if !((*iob).wevent).is_null() {
/* Enable writer if buffer is not empty. */
- sudo_debug_printf!(
- SUDO_DEBUG_INFO,
- b"added I/O wevent %p, fd %d, events %d\0" as *const u8 as *const libc::c_char,
- (*iob).wevent,
- (*(*iob).wevent).fd,
- (*(*iob).wevent).events as libc::c_int
- );
- if sudo_ev_add_v2(evbase, (*iob).wevent, 0 as *mut timespec, false)
- == -(1 as libc::c_int)
- {
- sudo_fatal!(b"unable to add event to queue\0" as *const u8 as *const libc::c_char,);
+ if (*iob).len > (*iob).off {
+ sudo_debug_printf!(
+ SUDO_DEBUG_INFO,
+ b"added I/O wevent %p, fd %d, events %d\0" as *const u8 as *const libc::c_char,
+ (*iob).wevent,
+ (*(*iob).wevent).fd,
+ (*(*iob).wevent).events as libc::c_int
+ );
+ if sudo_ev_add_v2(evbase, (*iob).wevent, 0 as *mut timespec, false)
+ == -(1 as libc::c_int)
+ {
+ sudo_fatal!(
+ b"unable to add event to queue\0" as *const u8 as *const libc::c_char,
+ );
+ }
}
}
+ iob = (*iob).entries.sle_next;
}
debug_return!();
}
@@ -2833,6 +2838,7 @@ unsafe extern "C" fn del_io_events(mut nonblocking: bool) {
}
}
}
+ iob = (*iob).entries.sle_next;
}
sudo_debug_printf!(
SUDO_DEBUG_INFO,
@@ -2857,6 +2863,7 @@ unsafe extern "C" fn del_io_events(mut nonblocking: bool) {
);
}
}
+ iob = (*iob).entries.sle_next;
}
}
@@ -2977,3 +2984,4 @@ unsafe extern "C" fn safe_close(mut fd: libc::c_int) -> libc::c_int {
);
debug_return_int!(close(fd));
}
+
--
2.43.0

Binary file not shown.

BIN
utsudo-0.0.2.tar.gz Normal file

Binary file not shown.

View File

@ -2,8 +2,8 @@ ExcludeArch: i686
Summary: The tudo respect sudo
Name: utsudo
Version: 0.0.1
Release: 0%{?dist}.01
Version: 0.0.2
Release: 0.03
License: ISC
Group: Applications/System
URL: https://www.sudo.ws/
@ -13,11 +13,12 @@ Source1: utsudoers
Source2: utsudo-ldap.conf
Source3: utsudo.conf
Requires: /etc/pam.d/system-auth
Requires: /usr/bin/vi
Requires(post): /bin/chmod
Requires: pam
Requires: vim-minimal
Requires(post): coreutils
Requires: sudo
BuildRequires: /usr/sbin/sendmail
BuildRequires: sendmail
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: bison
@ -36,7 +37,8 @@ BuildRequires: cargo
BuildRequires: rust
BuildRequires: patchelf
Patch0001: 0001-fix-compile-error-undefined-reference-to-sys_sigabbr.patch
Patch0001: 0001-fix-unable-to-callocate-memory.patch
Patch0002: 0002-fix-use_pty-function-error.patch
%description
Sudo (superuser do) allows a system administrator to give certain
@ -51,8 +53,8 @@ on many different machines.
%prep
%setup -q
%patch0001 -p1
%patch0002 -p1
%build
# Remove bundled copy of zlib
@ -143,7 +145,7 @@ rm utsudo.lang utsudoers.lang
mkdir -p $RPM_BUILD_ROOT/etc/pam.d
mkdir -p $RPM_BUILD_ROOT/usr/share/doc/utsudo
cat > $RPM_BUILD_ROOT/etc/pam.d/sudo << EOF
cat > $RPM_BUILD_ROOT/etc/pam.d/utsudo << EOF
#%%PAM-1.0
auth include system-auth
account include system-auth
@ -151,7 +153,7 @@ password include system-auth
session include system-auth
EOF
cat > $RPM_BUILD_ROOT/etc/pam.d/sudo-i << EOF
cat > $RPM_BUILD_ROOT/etc/pam.d/utsudo-i << EOF
#%%PAM-1.0
auth include sudo
account include sudo
@ -170,8 +172,8 @@ rm -rf $RPM_BUILD_ROOT
%attr(0640,root,root) %config(noreplace) /etc/utsudo.conf
%attr(0640,root,root) %config(noreplace) %{_sysconfdir}/utsudo-ldap.conf
%attr(0750,root,root) %dir /etc/utsudoers.d/
%config(noreplace) /etc/pam.d/sudo
%config(noreplace) /etc/pam.d/sudo-i
%config(noreplace) /etc/pam.d/utsudo
%config(noreplace) /etc/pam.d/utsudo-i
%attr(0644,root,root) %{_tmpfilesdir}/utsudo.conf
%attr(0644,root,root) /etc/dnf/protected.d/utsudo.conf
%dir /var/db/sudo
@ -180,12 +182,13 @@ rm -rf $RPM_BUILD_ROOT
%{_bindir}/utsudoedit
%dir %{_libexecdir}/utsudo
%attr(0755,root,root) %{_libexecdir}/utsudo/sesh
%attr(0644,root,root) %{_libexecdir}/utsudo/sudo_noexec.so
%attr(0644,root,root) %{_libexecdir}/utsudo/utsudo_noexec.so
%attr(0644,root,root) %{_libexecdir}/utsudo/sudoers.so
%attr(0644,root,root) %{_libexecdir}/utsudo/group_file.so
%attr(0644,root,root) %{_libexecdir}/utsudo/system_group.so
%{_libexecdir}/utsudo/libutsudo_util.so
%{_libexecdir}/utsudo/libutsudo_util.so.?
%{_libexecdir}/utsudo/libutsudo_variadic.so
%attr(0644,root,root) %{_libexecdir}/utsudo/libutsudo_util.so.?.?.?
%dir %{_pkgdocdir}/
%{!?_licensedir:%global license %%doc}
@ -196,6 +199,25 @@ rm -rf $RPM_BUILD_ROOT
/bin/chmod 0440 /etc/utsudoers || :
%changelog
* Sun Apr 28 2024 binlingyu <binlingyu@uniontech.com> - 0.0.2-0.03
- Add Patch: 0002-fix-use_pty-function-error.patch
* Fri Apr 12 2024 bianguangze <bianguangze@uniontech.com> - 0.0.2-0.02
- fix unable to callocate memory.
* Sun Apr 7 2024 bianguangze <bianguangze@uniontech.com> - 0.0.2-0.01
- 升级至0.0.2大版本,解决部分编译报错.
* Wed Sep 06 2023 Lujun <wanglujun@uniontech.com> - 0.0.1-0.04
- Add Patch: 0002-change-struct-stat-for-arm-and-loongarch.patch
* Mon Sep 04 2023 Lujun <wanglujun@uniontech.com> - 0.0.1-0.03
- Add Requires: sudo
- Del /etc/pam.d/sudo and /etc/pam.d/sudo-i fix file conflict.
* Sat Aug 19 2023 senlin <xiasenlin1@huawei.com> - 0.0.1-0.02
- Replace command file with rpm to avoid the build-system being unable to recognize it
* Mon Aug 07 2023 Lujun <wanglujun@uniontech.com> - 0.0.1-0.01
- Add Patch: 0001-fix-compile-error-undefined-reference-to-sys_sigabbr.patch