diff --git a/SOURCES/free-new-used-calc.patch b/SOURCES/free-new-used-calc.patch new file mode 100644 index 0000000..588509c --- /dev/null +++ b/SOURCES/free-new-used-calc.patch @@ -0,0 +1,38 @@ +diff -up ./proc/sysinfo.c.ori ./proc/sysinfo.c +--- ./proc/sysinfo.c.ori 2021-02-09 11:11:25.000000000 +0100 ++++ ./proc/sysinfo.c 2022-07-29 14:08:42.093322509 +0200 +@@ -786,10 +786,8 @@ nextline: + where such values will be dramatically distorted over those of the host. */ + if (kb_main_available > kb_main_total) + kb_main_available = kb_main_free; +- mem_used = kb_main_total - kb_main_free - kb_main_cached - kb_main_buffers; +- if (mem_used < 0) +- mem_used = kb_main_total - kb_main_free; +- kb_main_used = (unsigned long)mem_used; ++ mem_used = kb_main_total - kb_main_available; ++ kb_main_used = mem_used < 0 ? 0 : (unsigned long) mem_used; + + /* zero? might need fallback for 2.6.27 <= kernel 100.0 || pct_misc < 0) pct_misc = 0; + pct_swap = kb_swap_total ? (float)kb_swap_used * (100.0 / (float)kb_swap_total) : 0; diff --git a/SOURCES/pgrep-uid-gid-overflow-backport.patch b/SOURCES/pgrep-uid-gid-overflow-backport.patch new file mode 100644 index 0000000..2e5b382 --- /dev/null +++ b/SOURCES/pgrep-uid-gid-overflow-backport.patch @@ -0,0 +1,72 @@ +From 401d587d2deb78adcf62517654f955a24b2d537d Mon Sep 17 00:00:00 2001 +From: Todd Lewis +Date: Mon, 25 Oct 2021 19:38:10 -0400 +Subject: [PATCH] fix uid/gid > 2^31 + +--- + pgrep.c | 10 +++++++--- + proc/readproc.h | 12 ++++++------ + 2 files changed, 13 insertions(+), 9 deletions(-) + +diff --git a/pgrep.c b/pgrep.c +index 1905cd1d..7d731620 100644 +--- a/pgrep.c ++++ b/pgrep.c +@@ -229,8 +229,12 @@ static int strict_atol (const char *restrict str, long *restrict value) + + for ( ; *str; ++str) { + if (! isdigit (*str)) +- return (0); ++ return 0; ++ if (res >= LONG_MAX / 10) ++ return 0; + res *= 10; ++ if (res >= LONG_MAX - (*str - '0')) ++ return 0; + res += *str - '0'; + } + *value = sign * res; +@@ -305,7 +309,7 @@ static int conv_uid (const char *restrict name, struct el *restrict e) + xwarnx(_("invalid user name: %s"), name); + return 0; + } +- e->num = (int) pwd->pw_uid; ++ e->num = pwd->pw_uid; + return 1; + } + +@@ -322,7 +326,7 @@ static int conv_gid (const char *restrict name, struct el *restrict e) + xwarnx(_("invalid group name: %s"), name); + return 0; + } +- e->num = (int) grp->gr_gid; ++ e->num = grp->gr_gid; + return 1; + } + +diff --git a/proc/readproc.h b/proc/readproc.h +index 7905ea99..8d9ae392 100644 +--- a/proc/readproc.h ++++ b/proc/readproc.h +@@ -159,12 +159,12 @@ typedef struct proc_t { + session, // stat session id + nlwp, // stat,status number of threads, or 0 if no clue + tgid, // (special) thread group ID, the POSIX PID (see also: tid) +- tty, // stat full device number of controlling terminal +- /* FIXME: int uids & gids should be uid_t or gid_t from pwd.h */ +- euid, egid, // stat(),status effective +- ruid, rgid, // status real +- suid, sgid, // status saved +- fuid, fgid, // status fs (used for file access only) ++ tty; // stat full device number of controlling terminal ++ uid_t euid; gid_t egid; // stat(),status effective ++ uid_t ruid; gid_t rgid; // status real ++ uid_t suid; gid_t sgid; // status saved ++ uid_t fuid; gid_t fgid; // status fs (used for file access only) ++ int + tpgid, // stat terminal process group id + exit_signal, // stat might not be SIGCHLD + processor; // stat current (or most recent?) CPU +-- +GitLab + diff --git a/SOURCES/uptime-pretty-mod.patch b/SOURCES/uptime-pretty-mod.patch new file mode 100644 index 0000000..c3799b9 --- /dev/null +++ b/SOURCES/uptime-pretty-mod.patch @@ -0,0 +1,40 @@ +From 7eade2544e1c45bc516744aeaccc45df1d8f42df Mon Sep 17 00:00:00 2001 +From: Kyle Walker +Date: Tue, 11 Feb 2020 14:30:39 -0500 +Subject: [PATCH] whattime: Refactor the pretty-print evaluation + +This avoids rounding errors such as in the case of 364 days of uptime which +results in only output that prints at the hour and below. +--- + proc/whattime.c | 15 ++++++++++++--- + 1 file changed, 12 insertions(+), 3 deletions(-) + +diff --git a/proc/whattime.c b/proc/whattime.c +index c223cad..3e1b65c 100644 +--- a/proc/whattime.c ++++ b/proc/whattime.c +@@ -69,9 +69,18 @@ char *sprint_uptime(int human_readable) { + + if (human_readable) { + updecades = (int) uptime_secs / (60*60*24*365*10); +- upyears = ((int) uptime_secs / (60*60*24*365)) % 10; +- upweeks = ((int) uptime_secs / (60*60*24*7)) % 52; +- updays = ((int) uptime_secs / (60*60*24)) % 7; ++ if (updecades) ++ uptime_secs -= updecades * (60*60*24*365*10); ++ ++ upyears = (int) uptime_secs / (60*60*24*365); ++ if (upyears) ++ uptime_secs -= upyears * (60*60*24*365); ++ ++ upweeks = (int) uptime_secs / (60*60*24*7); ++ if (upweeks) ++ uptime_secs -= upweeks * (60*60*24*7); ++ ++ updays = (int) uptime_secs / (60*60*24); + } + else + updays = (int) uptime_secs / (60*60*24); +-- +2.24.1 + diff --git a/SPECS/procps-ng.spec b/SPECS/procps-ng.spec index 217f65c..1fa0759 100644 --- a/SPECS/procps-ng.spec +++ b/SPECS/procps-ng.spec @@ -4,7 +4,7 @@ Summary: System and process monitoring utilities Name: procps-ng Version: 3.3.17 -Release: 5%{?dist} +Release: 8%{?dist} License: GPL+ and GPLv2 and GPLv2+ and GPLv3+ and LGPLv2+ URL: https://sourceforge.net/projects/procps-ng/ @@ -17,8 +17,11 @@ Source2: README.top Patch1: pwait-to-pidwait.patch Patch2: covscan_findings.patch -Patch3: sysctl-support-systemd-globs.patch -Patch4: sysctl-print-dotted-keys-again.patch +Patch3: uptime-pretty-mod.patch +Patch4: free-new-used-calc.patch +Patch5: sysctl-support-systemd-globs.patch +Patch6: sysctl-print-dotted-keys-again.patch +Patch7: pgrep-uid-gid-overflow-backport.patch BuildRequires: make @@ -162,9 +165,24 @@ ln -s %{_bindir}/pidof %{buildroot}%{_sbindir}/pidof %files i18n -f %{name}.lang %changelog -* Wed Aug 24 2022 Jan Rybar - 3.3.17-5 -- sysctl: backport support of systemd glob patterns (and related bz 2116977) -- Resolves: rhbz#2121090 +* Thu Aug 18 2022 Jan Rybar - 3.3.17-8 +- pgrep: uid/gid overflow fix backport +- Resolves: rhbz#2119083 + +* Mon Aug 15 2022 Jan Rybar - 3.3.17-7 +- sysctl: backport - keys with dots instead of slashes again +- Resolves: rhbz#2116977 +- Related: rhbz#2052536 + +* Fri Jul 29 2022 Jan Rybar - 3.3.17-6 +- free: backport new 'used' calculation +- sysctl: backport support of systemd glob patterns +- Resolves: rhbz#2003033 +- Resolves: rhbz#2052536 + +* Fri Mar 25 2022 Jan Rybar - 3.3.17-5 +- uptime: human readable data not shown if 364 days up +- Resolves: rhbz#2067166 * Tue Aug 10 2021 Mohan Boddu - 3.3.17-4 - Rebuilt for IMA sigs, glibc 2.34, aarch64 flags