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

