diff --git a/backport-getpcaps-catch-PID-parsing-errors.patch b/backport-getpcaps-catch-PID-parsing-errors.patch new file mode 100644 index 0000000000000000000000000000000000000000..570aa02153009d2f888b1467f1cf3231766983fa --- /dev/null +++ b/backport-getpcaps-catch-PID-parsing-errors.patch @@ -0,0 +1,52 @@ +From fc804acc078ef03e2c5b3a233f118a537f260ccd Mon Sep 17 00:00:00 2001 +From: Jakub Wilk +Date: Thu, 1 Sep 2022 22:23:19 +0200 +Subject: [PATCH] getpcaps: catch PID parsing errors. + +Signed-off-by: Jakub Wilk +Signed-off-by: Andrew G. Morgan +--- + progs/getpcaps.c | 19 ++++++++++++++++++- + 1 file changed, 18 insertions(+), 1 deletion(-) + +diff --git a/progs/getpcaps.c b/progs/getpcaps.c +index 8fce0a3..1e914b2 100644 +--- a/progs/getpcaps.c ++++ b/progs/getpcaps.c +@@ -39,7 +39,9 @@ int main(int argc, char **argv) + } + + for ( ++argv; --argc > 0; ++argv ) { ++ long lpid; + int pid; ++ char *endarg; + cap_t cap_d; + + if (!strcmp(argv[0], "--help") || !strcmp(argv[0], "--usage") || +@@ -62,7 +64,22 @@ int main(int argc, char **argv) + continue; + } + +- pid = atoi(argv[0]); ++ errno = 0; ++ lpid = strtol(argv[0], &endarg, 10); ++ if (*endarg != '\0') { ++ errno = EINVAL; ++ } ++ if (errno == 0) { ++ if (lpid < 0 || pid != (pid_t) pid) ++ errno = EOVERFLOW; ++ } ++ if (errno != 0) { ++ fprintf(stderr, "Cannot parse pid %s (%s)\n", ++ argv[0], strerror(errno)); ++ retval = 1; ++ continue; ++ } ++ pid = lpid; + + cap_d = cap_get_pid(pid); + if (cap_d == NULL) { +-- +2.27.0 + diff --git a/libcap.spec b/libcap.spec index 8fb8c7a22b372bd2c37233ce54f54e62233100ca..2cffcb9981cdc275d6757801fbb750ed67d391fc 100644 --- a/libcap.spec +++ b/libcap.spec @@ -1,6 +1,6 @@ Name: libcap Version: 2.61 -Release: 3 +Release: 4 Summary: A library for getting and setting POSIX.1e draft 15 capabilities License: GPLv2 URL: https://sites.google.com/site/fullycapable @@ -10,6 +10,7 @@ Patch0: libcap-buildflags.patch Patch1: Fix-syntax-error-in-DEBUG-protected-setcap.c-code.patch Patch2: backport-psx-free-allocated-memory-at-exit.patch Patch3: backport-Avoid-a-deadlock-in-forked-psx-thread-exit.patch +Patch4: backport-getpcaps-catch-PID-parsing-errors.patch BuildRequires: libattr-devel pam-devel perl-interpreter gcc @@ -73,6 +74,9 @@ chmod +x %{buildroot}/%{_libdir}/*.so.* %{_mandir}/man8/*.gz %changelog +* Tue Nov 1 2022 yixiangzhike - 2.61-4 +- backport upstream patch + * Wed Oct 12 2022 yixiangzhike - 2.61-3 - backport upstream patches