char *add_script = NULL;
int ret = -1;
int fd = 0;
+ int error = 0;
*new_gid = 0;
nread = read(fd, output, sizeof(output)-1);
if (nread > 0) {
output[nread] = '\0';
- *new_gid = (gid_t)strtoul(output, NULL, 10);
+ *new_gid = (gid_t)strtoul_err(output,
+ NULL,
+ 10,
+ &error);
+ if (error != 0) {
+ *new_gid = 0;
+ close(fd);
+ return -1;
+ }
}
close(fd);
char *q;
uint32_t num_mem = 0;
struct dom_sid *members = NULL;
+ int error = 0;
p = (uint8_t *)data.dptr;
if (data.dsize < 8) {
/* we ignore unknown or uninteresting attributes
* (objectclass, etc.) */
if (strcasecmp_m(name, "gidNumber") == 0) {
- map->gid = strtoul(val, &q, 10);
- if (*q) {
+ map->gid = strtoul_err(val, &q, 10, &error);
+ if (*q || (error != 0)) {
errno = EIO;
goto failed;
}
goto failed;
}
} else if (strcasecmp_m(name, "sidNameUse") == 0) {
- map->sid_name_use = strtoul(val, &q, 10);
- if (*q) {
+ map->sid_name_use = strtoul_err(val,
+ &q,
+ 10,
+ &error);
+ if (*q || (error != 0)) {
errno = EIO;
goto failed;
}