systemd/0001-parse_uid-return-ENXIO-for-1-uids.patch

46 lines
1.3 KiB
Diff

From f841a154efbb3162d2a732936f031ac7a6b0d4cf Mon Sep 17 00:00:00 2001
From: Kay Sievers <kay@vrfy.org>
Date: Tue, 1 Jul 2014 16:00:05 +0200
Subject: [PATCH] parse_uid: return -ENXIO for -1 uids
---
src/shared/audit.c | 3 ---
src/shared/util.c | 4 ++--
2 files changed, 2 insertions(+), 5 deletions(-)
diff --git src/shared/audit.c src/shared/audit.c
index 5466447..f101050 100644
--- src/shared/audit.c
+++ src/shared/audit.c
@@ -77,9 +77,6 @@ int audit_loginuid_from_pid(pid_t pid, uid_t *uid) {
if (r < 0)
return r;
- if (u == (uid_t) -1)
- return -ENXIO;
-
*uid = (uid_t) u;
return 0;
}
diff --git src/shared/util.c src/shared/util.c
index e75f6c9..9b5a47a 100644
--- src/shared/util.c
+++ src/shared/util.c
@@ -282,11 +282,11 @@ int parse_uid(const char *s, uid_t* ret_uid) {
/* Some libc APIs use (uid_t) -1 as special placeholder */
if (uid == (uid_t) 0xFFFFFFFF)
- return -EINVAL;
+ return -ENXIO;
/* A long time ago UIDs where 16bit, hence explicitly avoid the 16bit -1 too */
if (uid == (uid_t) 0xFFFF)
- return -EINVAL;
+ return -ENXIO;
*ret_uid = uid;
return 0;
--
1.7.9.2