diff options
Diffstat (limited to 'src/libnm-systemd-shared/src/basic/parse-util.c')
-rw-r--r-- | src/libnm-systemd-shared/src/basic/parse-util.c | 19 |
1 files changed, 17 insertions, 2 deletions
diff --git a/src/libnm-systemd-shared/src/basic/parse-util.c b/src/libnm-systemd-shared/src/basic/parse-util.c index 71a16743ae..2b22039c1c 100644 --- a/src/libnm-systemd-shared/src/basic/parse-util.c +++ b/src/libnm-systemd-shared/src/basic/parse-util.c @@ -53,7 +53,6 @@ int parse_pid(const char *s, pid_t* ret_pid) { int r; assert(s); - assert(ret_pid); r = safe_atolu(s, &ul); if (r < 0) @@ -67,7 +66,8 @@ int parse_pid(const char *s, pid_t* ret_pid) { if (!pid_is_valid(pid)) return -ERANGE; - *ret_pid = pid; + if (ret_pid) + *ret_pid = pid; return 0; } @@ -339,6 +339,21 @@ int parse_errno(const char *t) { } #endif /* NM_IGNORED */ +int parse_fd(const char *t) { + int r, fd; + + assert(t); + + r = safe_atoi(t, &fd); + if (r < 0) + return r; + + if (fd < 0) + return -EBADF; + + return fd; +} + static const char *mangle_base(const char *s, unsigned *base) { const char *k; |