summaryrefslogtreecommitdiff
path: root/src/basic/audit.c
diff options
context:
space:
mode:
authorDavid Herrmann <dh.herrmann@googlemail.com>2015-09-05 15:20:21 +0200
committerDavid Herrmann <dh.herrmann@googlemail.com>2015-09-05 15:20:21 +0200
commit17258f5f27dd3dd57c36f2805e0a0c27a1aeabba (patch)
tree4777f9f0fc2863380467f900887697e09c07272d /src/basic/audit.c
parentc7430c3d1a0c14aed631864b9da504ba1a9352c2 (diff)
parenta67c56bff419afc16547f16df1ad1bbe0efe84a6 (diff)
Merge pull request #1140 from poettering/sd-event-signals
A variety of sd-event, sd-login and cgroup fixes
Diffstat (limited to 'src/basic/audit.c')
-rw-r--r--src/basic/audit.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/basic/audit.c b/src/basic/audit.c
index 54148fcf18..1f593aa813 100644
--- a/src/basic/audit.c
+++ b/src/basic/audit.c
@@ -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;