version 1.8, 2019/02/21 22:13:43 |
version 1.9, 2019/03/23 16:04:28 |
|
|
else |
else |
ids[i].mapped = id; |
ids[i].mapped = id; |
|
|
LOG4(sess, "remapped identifier %s: %" PRId32 " -> %" PRId32, |
LOG4(sess, "remapped identifier %s: %d -> %d", |
ids[i].name, ids[i].id, ids[i].mapped); |
ids[i].name, ids[i].id, ids[i].mapped); |
} |
} |
} |
} |
|
|
|
|
assert(i == *idsz); |
assert(i == *idsz); |
if (isgid) { |
if (isgid) { |
if ((grp = getgrgid((gid_t)id)) == NULL) { |
if ((grp = getgrgid((gid_t)id)) == NULL) { |
ERR(sess, "%" PRId32 ": unknown gid", id); |
ERR(sess, "%d: unknown gid", id); |
return 0; |
return 0; |
} |
} |
name = grp->gr_name; |
name = grp->gr_name; |
} else { |
} else { |
if ((usr = getpwuid((uid_t)id)) == NULL) { |
if ((usr = getpwuid((uid_t)id)) == NULL) { |
ERR(sess, "%" PRId32 ": unknown uid", id); |
ERR(sess, "%d: unknown uid", id); |
return 0; |
return 0; |
} |
} |
name = usr->pw_name; |
name = usr->pw_name; |
} |
} |
|
|
if ((sz = strlen(name)) > UINT8_MAX) { |
if ((sz = strlen(name)) > UINT8_MAX) { |
ERRX(sess, "%" PRId32 ": name too long: %s", id, name); |
ERRX(sess, "%d: name too long: %s", id, name); |
return 0; |
return 0; |
} else if (sz == 0) { |
} else if (sz == 0) { |
ERRX(sess, "%" PRId32 ": zero-length name", id); |
ERRX(sess, "%d: zero-length name", id); |
return 0; |
return 0; |
} |
} |
|
|
|
|
} |
} |
|
|
LOG4(sess, "adding identifier to list: %s (%u)", |
LOG4(sess, "adding identifier to list: %s (%u)", |
(*ids)[*idsz].name, (*ids)[*idsz].id); |
(*ids)[*idsz].name, (*ids)[*idsz].id); |
(*idsz)++; |
(*idsz)++; |
return 1; |
return 1; |
} |
} |
|
|
ERRX1(sess, "io_read_byte"); |
ERRX1(sess, "io_read_byte"); |
return 0; |
return 0; |
} else if (sz == 0) |
} else if (sz == 0) |
WARNX(sess, "zero-length name " |
WARNX(sess, "zero-length name in identifier list"); |
"in identifier list"); |
|
|
|
(*ids)[*idsz].id = id; |
(*ids)[*idsz].id = id; |
(*ids)[*idsz].name = calloc(sz + 1, 1); |
(*ids)[*idsz].name = calloc(sz + 1, 1); |