packing shell sections

This commit is contained in:
2022-03-03 18:05:46 +02:00
committed by Motiejus Jakštys
parent e1bdb6c529
commit a4e3e08f5f
4 changed files with 104 additions and 37 deletions

View File

@@ -354,24 +354,24 @@ STATUS SECTION SIZE DESCRIPTION
✅ bdz_gid ? bdz(gid)
✅ bdz_groupname ? bdz(groupname)
✅ bdz_uid ? bdz(uid)
✅ bdz_name ? bdz(username)
✅ bdz_username ? bdz(username)
idx_gid2group len(group)*29/8 bdz->offset Groups
idx_groupname2group len(group)*29/8 bdz->offset Groups
idx_uid2user len(user)*29/8 bdz->offset Users
idx_name2user len(user)*29/8 bdz->offset Users
idx_username2gids len(user)*29/8 bdz->offset UserGids
ShellIndex len(shells)*2 shell index array
ShellBlob <= 4032 shell data blob (max 63*64 bytes)
Groups ? packed Group entries (8b padding)
Users ? packed User entries (8b padding)
Groupmembers ? per-group memberlist (no padding)
UserGids ? per-user gidlist entries (8b padding)
shellIndex len(shells)*2 shell index array
shellBlob <= 4032 shell data blob (max 63*64 bytes)
groups ? packed Group entries (8b padding)
users ? packed User entries (8b padding)
groupMembers ? per-group memberlist (no padding)
userGids ? per-user gidlist entries (8b padding)
```
Section creation order:
1. `bdz_*`. No depdendencies.
1. ShellIndex, ShellBlob. No dependencies.
1. `bdz_*`. No depdendencies.
1. ✅ `shellIndex`, `shellBlob`. No dependencies.
1. UserGids. No dependencies.
1. Users, but without `additional_gids_offset`. No dependencies.
1. Groupmembers. Depends on Users, ex. `additional_gids_offset`.