]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
parse-util: introduce pid_is_valid()
authorLennart Poettering <lennart@poettering.net>
Fri, 14 Jul 2017 16:57:54 +0000 (18:57 +0200)
committerLennart Poettering <lennart@poettering.net>
Mon, 31 Jul 2017 16:01:42 +0000 (18:01 +0200)
Checking for validity of a PID is relatively easy, but let's add a
helper cal for this too, in order to make things more readable and more
similar to uid_is_valid(), gid_is_valid() and friends.

src/basic/parse-util.c
src/basic/process-util.h
src/login/logind-session.c

index 4532f222c8ab0bb09790ea5176815e19233b0049..89bb667c5fe6b1776cf068365ace06b5c5b6df5e 100644 (file)
@@ -59,7 +59,7 @@ int parse_pid(const char *s, pid_t* ret_pid) {
         if ((unsigned long) pid != ul)
                 return -ERANGE;
 
-        if (pid <= 0)
+        if (!pid_is_valid(pid))
                 return -ERANGE;
 
         *ret_pid = pid;
index 17746b4ebfa583cf6f6b4cc4f50712bf46ac71b2..b45d60dbd14e337aef5bbc85be04344cdb908095 100644 (file)
@@ -118,6 +118,10 @@ static inline bool ioprio_priority_is_valid(int i) {
         return i >= 0 && i < IOPRIO_BE_NR;
 }
 
+static inline bool pid_is_valid(pid_t p) {
+        return p > 0;
+}
+
 int ioprio_parse_priority(const char *s, int *ret);
 
 pid_t getpid_cached(void);
index 11d9e8ff5e66a56adecf3ea66454f715c3c3f0fc..3778bb7d7057d3ec1bc7323d11b9ae67bdf186b9 100644 (file)
@@ -45,6 +45,7 @@
 #include "terminal-util.h"
 #include "user-util.h"
 #include "util.h"
+#include "process-util.h"
 
 #define RELEASE_USEC (20*USEC_PER_SEC)
 
@@ -281,7 +282,7 @@ int session_save(Session *s) {
         if (!s->vtnr)
                 fprintf(f, "POSITION=%u\n", s->position);
 
-        if (s->leader > 0)
+        if (pid_is_valid(s->leader))
                 fprintf(f, "LEADER="PID_FMT"\n", s->leader);
 
         if (audit_session_is_valid(s->audit_id))