summaryrefslogtreecommitdiff
path: root/src/libnm-systemd-shared/src/basic/parse-util.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/libnm-systemd-shared/src/basic/parse-util.c')
-rw-r--r--src/libnm-systemd-shared/src/basic/parse-util.c19
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;