From d050096bbbf4922f025a6e9320edc40b0d8fac67 Mon Sep 17 00:00:00 2001 From: Peter Bieringer Date: Sun, 20 Jul 2025 12:46:55 +0200 Subject: [PATCH 1/3] fix for https://github.com/Kozea/Radicale/issues/1826 --- radicale/utils.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/radicale/utils.py b/radicale/utils.py index b5b42694..6062bd63 100644 --- a/radicale/utils.py +++ b/radicale/utils.py @@ -225,7 +225,12 @@ def user_groups_as_string(): if sys.platform != "win32": euid = os.geteuid() egid = os.getegid() - username = pwd.getpwuid(euid)[0] + try: + username = pwd.getpwuid(euid)[0] + except: + # name of user not found + s = "user=(%d) group=(%d)" % (euid, egid) + return s gids = os.getgrouplist(username, egid) groups = [] for gid in gids: From 5fea367103b8f6d3b843eee6744c6926ac435587 Mon Sep 17 00:00:00 2001 From: Peter Bieringer Date: Sun, 20 Jul 2025 12:47:03 +0200 Subject: [PATCH 2/3] changelog for fix for https://github.com/Kozea/Radicale/issues/1826 --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ec1b5eeb..a91f5630 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ * Fix: logging ignores not retrievable get_native_id if not supported by OS * Fix: report with enabled expand honors now provided filter proper * Improve: add options [logging] trace_on_debug and trace_filter for supporting trace logging +* Fix: catch case where getpwuid is not returning a username ## 3.5.4 * Improve: item filter enhanced for 3rd level supporting VALARM and honoring TRIGGER (offset or absolute) From 8d2a71557a80309556f9930d198a974df8f27807 Mon Sep 17 00:00:00 2001 From: Peter Bieringer Date: Sun, 20 Jul 2025 12:49:53 +0200 Subject: [PATCH 3/3] make flake8 happy --- radicale/utils.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/radicale/utils.py b/radicale/utils.py index 6062bd63..1b5a016c 100644 --- a/radicale/utils.py +++ b/radicale/utils.py @@ -227,7 +227,7 @@ def user_groups_as_string(): egid = os.getegid() try: username = pwd.getpwuid(euid)[0] - except: + except Exception: # name of user not found s = "user=(%d) group=(%d)" % (euid, egid) return s