If we're asked to look up our own user namespace mapping, don't go
via fd as trying to setns() to our own user namespace in
userns_enter_and_pin() would fail with EPERM as the kernel doesn't
allow switching to your own userns.
assert(mode < _UID_RANGE_USERNS_MODE_MAX);
assert(ret);
+ r = is_our_namespace(userns_fd, NAMESPACE_USER);
+ if (r < 0)
+ return r;
+ if (r > 0)
+ return uid_range_load_userns(/* path= */ NULL, mode, ret);
+
r = userns_enter_and_pin(userns_fd, &pidref);
if (r < 0)
return r;