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.
This commit is contained in:
parent
b3ac818be8
commit
ef5c570edf
|
@ -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;
|
||||
|
|
|
@ -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) {
|
||||
|
|
Loading…
Reference in a new issue