chiark / gitweb /
logind: minor clean-ups
[elogind.git] / src / basic / audit.c
index 54148fcf1836a40c0062a649f6ea676d77a9a2b8..9bf331cdea2a3b14e0696be81ae344cf9f43648b 100644 (file)
@@ -36,6 +36,11 @@ int audit_session_from_pid(pid_t pid, uint32_t *id) {
 
         assert(id);
 
+        /* We don't convert ENOENT to ESRCH here, since we can't
+         * really distuingish between "audit is not available in the
+         * kernel" and "the process does not exist", both which will
+         * result in ENOENT. */
+
         p = procfs_file_alloca(pid, "sessionid");
 
         r = read_one_line_file(p, &s);
@@ -47,7 +52,7 @@ int audit_session_from_pid(pid_t pid, uint32_t *id) {
                 return r;
 
         if (u == AUDIT_SESSION_INVALID || u <= 0)
-                return -ENXIO;
+                return -ENODATA;
 
         *id = u;
         return 0;
@@ -68,6 +73,8 @@ int audit_loginuid_from_pid(pid_t pid, uid_t *uid) {
                 return r;
 
         r = parse_uid(s, &u);
+        if (r == -ENXIO) /* the UID was -1 */
+                return -ENODATA;
         if (r < 0)
                 return r;
 
@@ -75,6 +82,8 @@ int audit_loginuid_from_pid(pid_t pid, uid_t *uid) {
         return 0;
 }
 
+/// UNNEEDED by elogind
+#if 0
 bool use_audit(void) {
         static int cached_use = -1;
 
@@ -92,3 +101,4 @@ bool use_audit(void) {
 
         return cached_use;
 }
+#endif // 0