token && num_tokens < 3;
token = strtok_r(NULL, " ", &token_saveptr), ++num_tokens) {
char* endptr = NULL;
- *parsed[num_tokens] = strtoul(token, &endptr, 10);
- if ((*parsed[num_tokens] == ULONG_MAX && errno) || *endptr) {
+ unsigned long t = strtoul(token, &endptr, 10);
+ if ((t == ULONG_MAX && errno) || (t > UINT_MAX) || *endptr) {
fprintf(stderr, "Malformed u/gid mapping line\n");
return 0;
}
+ *parsed[num_tokens] = (unsigned int) t;
}
if (num_tokens < 3 || strtok_r(NULL, " ", &token_saveptr) != NULL) {
fprintf(stderr, "Malformed u/gid mapping line\n");