summaryrefslogtreecommitdiffstats
path: root/toolbox/uid_from_user.c
diff options
context:
space:
mode:
Diffstat (limited to 'toolbox/uid_from_user.c')
-rw-r--r--toolbox/uid_from_user.c13
1 files changed, 2 insertions, 11 deletions
diff --git a/toolbox/uid_from_user.c b/toolbox/uid_from_user.c
index d70f410..fd48d3c 100644
--- a/toolbox/uid_from_user.c
+++ b/toolbox/uid_from_user.c
@@ -26,23 +26,14 @@
* SUCH DAMAGE.
*/
-#include <limits.h>
#include <pwd.h>
-#include <stdlib.h>
#include <sys/types.h>
int uid_from_user(const char* name, uid_t* uid) {
struct passwd* pw = getpwnam(name);
- if (pw != NULL) {
- *uid = pw->pw_uid;
- return 0;
- }
- // Try to parse as an integer.
- char* end_ptr;
- unsigned long number = strtoul(name, &end_ptr, 0);
- if (end_ptr == name || *end_ptr != '\0' || number > INT_MAX) {
+ if (pw == NULL) {
return -1;
}
- *uid = (int) number;
+ *uid = pw->pw_uid;
return 0;
}