uint64_t uid;
uint64_t gid;
- // off_name = 0
+ // off_name = 0, not stored on disk
uint16_t off_passwd;
uint16_t off_gecos;
uint16_t off_dir;
uint16_t off_shell;
- uint16_t data_size;
/*
* Data contains all strings (name, passwd, gecos, dir, shell)
* concatenated, with their trailing NUL. The off_* variables point to
* beginning of each string.
*/
+ uint16_t data_size; // size of data in bytes
const char data[];
} __attribute__((packed));
return NSS_STATUS_NOTFOUND;
}
- const char *e = h->data + h->off_data + *off;
+ const char *e = key->data + *off;
if (!entry_to_passwd((struct passwd_entry *)e, result, buffer, buflen)) {
unmap_file(&f);
errno = ERANGE;