// NOTE: This file is very similar to pw.c, keep in sync!
+// TODO: adapt offsets to 32 bit to fit more than 5000 users per group (for 9
+// byte user names)
struct group_entry {
uint64_t gid;
- // off_name = 0
+ // off_name = 0, not stored on disk
uint16_t off_passwd;
uint16_t off_mem_off;
*
* All offsets are relative to the beginning of data.
*/
- uint16_t data_size;
+ uint16_t data_size; // size of data in bytes
const char data[];
} __attribute__((packed));
static bool entry_to_group(const struct group_entry *e, struct group *g, char *tmp, size_t space) {
+ // Space required for the gr_mem array
const size_t mem_size = (size_t)(e->mem_count + 1) * sizeof(char *);
if (space < e->data_size + mem_size) {