From 901c3d0d85628e6a4708bc9748766029cf5c7f97 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Tue, 18 Sep 2012 01:53:15 +0200 Subject: [PATCH] util: introduce get_process_gid() --- src/shared/util.c | 14 +++++++++++--- src/shared/util.h | 1 + 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/shared/util.c b/src/shared/util.c index 20e5faf34..59c1417b4 100644 --- a/src/shared/util.c +++ b/src/shared/util.c @@ -1108,7 +1108,7 @@ int get_process_exe(pid_t pid, char **name) { return r; } -int get_process_uid(pid_t pid, uid_t *uid) { +static int get_process_id(pid_t pid, const char *field, uid_t *uid) { char *p; FILE *f; int r; @@ -1140,8 +1140,8 @@ int get_process_uid(pid_t pid, uid_t *uid) { l = strstrip(line); - if (startswith(l, "Uid:")) { - l += 4; + if (startswith(l, field)) { + l += strlen(field); l += strspn(l, WHITESPACE); l[strcspn(l, WHITESPACE)] = 0; @@ -1159,6 +1159,14 @@ finish: return r; } +int get_process_uid(pid_t pid, uid_t *uid) { + return get_process_id(pid, "Uid:", uid); +} + +int get_process_gid(pid_t pid, gid_t *gid) { + return get_process_id(pid, "Gid:", gid); +} + char *strnappend(const char *s, const char *suffix, size_t b) { size_t a; char *r; diff --git a/src/shared/util.h b/src/shared/util.h index 71b5c52c4..2429339f5 100644 --- a/src/shared/util.h +++ b/src/shared/util.h @@ -246,6 +246,7 @@ int get_process_comm(pid_t pid, char **name); int get_process_cmdline(pid_t pid, size_t max_length, bool comm_fallback, char **line); int get_process_exe(pid_t pid, char **name); int get_process_uid(pid_t pid, uid_t *uid); +int get_process_gid(pid_t pid, gid_t *gid); char hexchar(int x); int unhexchar(char c); -- 2.30.2