42 lines
1.1 KiB
Diff
42 lines
1.1 KiB
Diff
From 3508ad2704103e863fca8c45ecda25021850befc Mon Sep 17 00:00:00 2001
|
|
From: Jakub Jelen <jjelen@redhat.com>
|
|
Date: Thu, 24 Jun 2021 10:24:31 +0200
|
|
Subject: [PATCH] Accept whole range of supported pids
|
|
|
|
Signed-off-by: Jakub Jelen <jjelen@redhat.com>
|
|
Reviewed-by: Samuel Cabrero <scabrero@samba.org>
|
|
Reviewed-by: Andreas Schneider <asn@samba.org>
|
|
---
|
|
src/pam_wrapper.c | 10 ++++++++--
|
|
1 file changed, 8 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/src/pam_wrapper.c b/src/pam_wrapper.c
|
|
index 6801d7b..efa7cbb 100644
|
|
--- a/src/pam_wrapper.c
|
|
+++ b/src/pam_wrapper.c
|
|
@@ -791,14 +791,20 @@ static void pwrap_clean_stale_dirs(const char *dir)
|
|
buf[sizeof(buf) - 1] = '\0';
|
|
|
|
tmp = strtol(buf, NULL, 10);
|
|
- if (tmp == 0 || tmp > 0xFFFF || errno == ERANGE) {
|
|
+ if (tmp == 0 || errno == ERANGE) {
|
|
PWRAP_LOG(PWRAP_LOG_ERROR,
|
|
"Failed to parse pid, buf=%s",
|
|
buf);
|
|
return;
|
|
}
|
|
|
|
- pid = (pid_t)(tmp & 0xFFFF);
|
|
+ pid = (pid_t)tmp;
|
|
+ /* Check if we are out of pid_t range on this system */
|
|
+ if ((long)pid != tmp) {
|
|
+ PWRAP_LOG(PWRAP_LOG_ERROR,
|
|
+ "pid out of range: %ld", tmp);
|
|
+ return;
|
|
+ }
|
|
|
|
rc = kill(pid, 0);
|
|
if (rc == -1) {
|
|
--
|
|
GitLab
|