From ef5c570edfd8afb20e3b04d3711e111a1dea0548 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Thu, 3 Sep 2015 18:23:26 +0200 Subject: util: document why parse_uid() returns ENXIO parse_uid() returns EINVAL for invalid strings, but ENXIO for the (uid_t) -1 user ids in order to distinguish these two cases. Document this. --- src/basic/util.c | 5 ++++- src/test/test-util.c | 3 +++ 2 files changed, 7 insertions(+), 1 deletion(-) (limited to 'src') diff --git a/src/basic/util.c b/src/basic/util.c index beec7cb7dd..86aacad307 100644 --- a/src/basic/util.c +++ b/src/basic/util.c @@ -403,7 +403,10 @@ int parse_uid(const char *s, uid_t* ret_uid) { return -ERANGE; if (!uid_is_valid(uid)) - return -ENXIO; + return -ENXIO; /* we return ENXIO instead of EINVAL + * here, to make it easy to distuingish + * invalid numeric uids invalid + * strings. */ if (ret_uid) *ret_uid = uid; diff --git a/src/test/test-util.c b/src/test/test-util.c index dff38ab6f6..10d8d210d5 100644 --- a/src/test/test-util.c +++ b/src/test/test-util.c @@ -282,6 +282,9 @@ static void test_parse_uid(void) { r = parse_uid("65535", &uid); assert_se(r == -ENXIO); + + r = parse_uid("asdsdas", &uid); + assert_se(r == -EINVAL); } static void test_safe_atou16(void) { -- cgit v1.2.3-54-g00ecf