Motiejus Jakštys
7d73667250
code style
2022-06-22 21:06:20 +03:00
Motiejus Jakštys
a4d5be6fab
wip error context
2022-06-22 20:59:58 +03:00
Motiejus Jakštys
6aa4b01692
wip handling errors in top level
2022-06-22 16:23:04 +03:00
Motiejus Jakštys
62b643dbc2
ErrCtx: splitRev
2022-06-22 15:36:22 +03:00
Motiejus Jakštys
675125be05
beginnings of using ErrCtx
2022-06-15 13:34:37 +03:00
Motiejus Jakštys
eb6003c957
wip ErrCtx
2022-06-15 12:56:19 +03:00
Motiejus Jakštys
72f6c9c6f4
don't be smart about memory continuity
2022-06-12 13:38:10 +03:00
Motiejus Jakštys
9b803b84d2
add ErrContext
2022-06-12 13:27:12 +03:00
Motiejus Jakštys
12561d9f3a
wip: full smoke test
2022-06-07 13:14:50 +03:00
Motiejus Jakštys
e2d20bb805
formatting
2022-06-07 06:30:18 +03:00
Motiejus Jakštys
a5c24ace80
writing to the db
2022-06-07 05:59:00 +03:00
Motiejus Jakštys
31b5bb2d72
Group.fromReader
2022-06-07 05:39:16 +03:00
Motiejus Jakštys
e238db9b60
unix2db: first stab at flag parsing
2022-06-06 10:01:15 +03:00
Motiejus Jakštys
20bfa60f26
fixes for zig 0.10.0-dev.2473+e498fb155
2022-06-05 23:11:18 +03:00
Motiejus Jakštys
d71f0d615b
fix one of stage2 errors
2022-05-25 09:48:39 +03:00
Motiejus Jakštys
c602b7a039
rename lib to src
2022-05-25 09:42:42 +03:00
Motiejus Jakštys
a8b45911aa
weekend changes
...
- move main.zig to it's own package, create lib/
- rename AllSections to DB, remove intermediate tuples
- iovec does not allocate
- remove error{Overflow} from almost everywhere
2022-03-23 12:01:13 +02:00
Motiejus Jakštys
886382d900
clean up build a bit
2022-03-20 08:46:54 +01:00
Motiejus Jakštys
b220dd92e3
iovec
2022-03-20 08:42:51 +01:00
Motiejus Jakštys
787fbcf375
[cmph] do our own definitions
...
so we don't import headers any more.
2022-03-20 08:42:22 +01:00
Motiejus Jakštys
f4012c8694
constructing header
2022-03-18 18:22:35 +01:00
Motiejus Jakštys
bb3577f7b3
fix one-off bugs
2022-03-18 18:11:45 +01:00
Motiejus Jakštys
0331364da2
test ergonomics
...
thanks tsmanner
2022-03-18 17:55:45 +01:00
Motiejus Jakštys
e4e845384f
endianess and nblocks
2022-03-18 17:48:33 +01:00
Motiejus Jakštys
692d80cdd7
corpus: add root
2022-03-18 06:34:28 +01:00
Motiejus Jakštys
4daa6fd38a
sections: store offsets in indices
2022-03-18 06:17:52 +01:00
Motiejus Jakštys
a426c46efa
tidy up imports
2022-03-18 05:52:21 +01:00
Motiejus Jakštys
4e36d7850e
rewrite shells
...
- Shell is up to 256 bytes long.
- Store up to 255 shells in the Shells area.
- Remove padding from the User struct.
2022-03-17 17:07:33 +01:00
Motiejus Jakštys
d526f1fab8
fix shell unit test
2022-03-16 07:12:35 +02:00
Motiejus Jakštys
c721fa6d5d
split bdz int and str tests
2022-03-16 07:08:57 +02:00
Motiejus Jakštys
e142621753
nits in tests
2022-03-16 06:59:12 +02:00
Motiejus Jakštys
9c2f0969dc
sections: gc on error
2022-03-16 06:57:35 +02:00
Motiejus Jakštys
8a4bb62613
shr user and group offsets
...
by 3 bits, all of them.
2022-03-15 10:56:50 +02:00
Motiejus Jakštys
249cdb1a31
remove corpus.users and corpus.groups
...
These use cases are now fully replaced with MultiArrayList
2022-03-15 10:07:05 +02:00
Motiejus Jakštys
0a0559824a
Bdz index helper
2022-03-15 08:09:28 +02:00
Motiejus Jakštys
92ee170d54
bdz/cmph nits
2022-03-15 06:35:48 +02:00
Motiejus Jakštys
6bf3e10eed
test packed users iterator
2022-03-15 06:27:03 +02:00
Motiejus Jakštys
2c4e61d0ed
remove redundant sections
2022-03-13 14:22:49 +02:00
Motiejus Jakštys
3b2f135d5c
refactor ShellReader, so it can be included
2022-03-10 19:20:25 +02:00
Motiejus Jakštys
1751f6c996
replace PackedUserHash with simple PackedUser
...
passing hashes is OK
2022-03-10 19:20:25 +02:00
Motiejus Jakštys
c78a2c0def
Implement Groupmembers and Groups section without tests
2022-03-10 19:20:25 +02:00
Motiejus Jakštys
d6ba7bed63
group_members
2022-03-10 19:20:25 +02:00
Motiejus Jakštys
4cc655de24
store members_offset as a varint
2022-03-10 13:02:38 +02:00
Motiejus Jakštys
ba56ff8d3b
user gids are unpadded
2022-03-10 13:02:38 +02:00
Motiejus Jakštys
8fbd605b8d
use Multi where appropriate
2022-03-10 13:02:38 +02:00
Motiejus Jakštys
15e018389a
username2groups -> user2groups
2022-03-10 13:02:38 +02:00
Motiejus Jakštys
c79741f4e2
groupname2users -> group2users
2022-03-10 13:02:38 +02:00
Motiejus Jakštys
9aa52e5a69
offsets are u64, indices are u32
2022-03-10 13:02:38 +02:00
Motiejus Jakštys
fc469acbf9
offsets are u64
2022-03-10 13:02:38 +02:00
Motiejus Jakštys
d2ace3e125
remove redundant fields
2022-03-10 13:02:38 +02:00
Motiejus Jakštys
9bf0a35689
add a struct for all sections
2022-03-10 13:02:38 +02:00
Motiejus Jakštys
24d984d712
bdz.search_u32: search directly
2022-03-06 18:18:35 +02:00
Motiejus Jakštys
1caf3f1184
some explicit errors in function signatures
2022-03-06 18:01:52 +02:00
Motiejus Jakštys
d3be68b51d
generalize Shell2Index for hash and test stubs
2022-03-06 17:55:29 +02:00
Motiejus Jakštys
a6349cd114
wip writing of users
2022-03-06 13:11:06 +02:00
Motiejus Jakštys
e3fd1c833c
userGids unit test
2022-03-06 09:57:44 +02:00
Motiejus Jakštys
efd3cfc367
expose `len` to the delta-compressed iterator
2022-03-06 09:39:18 +02:00
Motiejus Jakštys
039aeb80dd
delta decompression iterator
2022-03-06 06:37:24 +02:00
Motiejus Jakštys
ec95b231fa
varint iterator
2022-03-05 10:19:42 +02:00
Motiejus Jakštys
e17b2c9641
expose native shell sections
2022-03-05 06:08:01 +02:00
Motiejus Jakštys
869f3f3a65
less memory thrashing
2022-03-05 05:40:00 +02:00
Motiejus Jakštys
87c424aab9
get rid of Corpus struct
...
it had some non-useful internal state
2022-03-04 11:12:04 +02:00
Motiejus Jakštys
b81072f726
add usergids
2022-03-04 10:55:09 +02:00
Motiejus Jakštys
a4e3e08f5f
packing shell sections
2022-03-03 18:05:46 +02:00
Motiejus Jakštys
e1bdb6c529
more robust bdz for numbers + helpers
2022-03-03 11:32:12 +02:00
Motiejus Jakštys
4fc54e5b65
[Section] slices instead of ArrayLists
...
It will need to be only indexed and interated anyway.
2022-03-02 07:15:08 +02:00
Motiejus Jakštys
9721e1be7f
start with real sections
2022-03-02 06:50:15 +02:00
Motiejus Jakštys
a526379fd8
cosmetic changes
2022-03-02 06:18:19 +02:00
Motiejus Jakštys
0ccbdc4215
indentation
2022-03-02 06:07:07 +02:00
Motiejus Jakštys
9392922216
some negative tests
2022-03-02 06:02:45 +02:00
Motiejus Jakštys
321d1f6afd
sort and use unmanaged ArrayLists
2022-03-02 06:02:04 +02:00
Motiejus Jakštys
e5870a95fe
make corpus smoke test pass
2022-03-02 05:42:23 +02:00
Motiejus Jakštys
3c4455efeb
cloning users and groups
2022-03-01 15:03:51 +02:00
Motiejus Jakštys
7df1296ce1
corpus test passing
2022-03-01 05:47:44 +02:00
Motiejus Jakštys
3eec9a3274
starting with sections
2022-02-28 20:34:15 +02:00
Motiejus Jakštys
40deb3f0be
preparing for bringing this all together
2022-02-28 06:19:32 +02:00
Motiejus Jakštys
0b0e917086
deltaDecompress
2022-02-28 06:02:16 +02:00
Motiejus Jakštys
ca67bf56e7
implement delta compression
2022-02-28 05:48:43 +02:00
Motiejus Jakštys
df8ab1fbbf
PackedGroup
2022-02-27 18:40:05 +02:00
Motiejus Jakštys
1ef962d64a
mutate users in tests
2022-02-27 06:26:01 +02:00
Motiejus Jakštys
b4c7cba627
mutable/immutable PackedUser
2022-02-26 11:20:44 +02:00
Motiejus Jakštys
f4c4dc535c
remove redundant comment
2022-02-26 10:46:06 +02:00
Motiejus Jakštys
b02edc7190
use ArrayList instead of slices
...
The API is more ergonimic.
2022-02-26 10:29:41 +02:00
Motiejus Jakštys
87b4b81a48
formatting
2022-02-25 15:22:05 +02:00
Motiejus Jakštys
22c61d1207
fix PackedUser.maxSize
2022-02-25 15:17:24 +02:00
Motiejus Jakštys
b0d74c0cad
formatting
2022-02-25 14:01:35 +02:00
Motiejus Jakštys
eed4f4e234
add some clarifying comments
2022-02-25 13:58:06 +02:00
Motiejus Jakštys
b9fb07121b
remove debug statements
2022-02-25 13:50:24 +02:00
Motiejus Jakštys
2154205711
refactoring UserReader
2022-02-25 13:47:23 +02:00
Motiejus Jakštys
751b51b859
change size treatment for PackedUser
2022-02-24 17:37:22 +02:00
Motiejus Jakštys
49a7d79b05
PackedUser is now readable
2022-02-24 17:33:27 +02:00
Motiejus Jakštys
0f43f8b2d0
wip refactoring PackedUser
2022-02-24 17:09:17 +02:00
Motiejus Jakštys
b924e3a935
start packed group
2022-02-24 10:13:26 +02:00
Motiejus Jakštys
3bf1b3fc01
bring back additional_gids_offset
2022-02-24 05:32:27 +02:00
Motiejus Jakštys
c0afca00b0
shorten cmph pack by 4 bytes
2022-02-23 20:30:42 +02:00
Motiejus Jakštys
3498167108
add bdz.zig
2022-02-23 18:30:35 +02:00
Motiejus Jakštys
4f1bada988
start with cmph.zig and bdz.zig
2022-02-23 18:24:23 +02:00
Motiejus Jakštys
609ab3d2b6
overflow tests
2022-02-23 10:19:50 +02:00
Motiejus Jakštys
d555994960
wip varint
2022-02-23 07:10:49 +02:00
Motiejus Jakštys
b58063ef63
Implementation status for each section
2022-02-23 06:31:25 +02:00
Motiejus Jakštys
bb4b5eba03
add utf8 validation; rework user iterator
2022-02-23 06:09:42 +02:00
Motiejus Jakštys
0e5365127a
increase gecos length
2022-02-22 15:22:30 +02:00
Motiejus Jakštys
e06cac38b2
remove 3 bytes from PackedUser
...
additional_gids will be stored separately.
2022-02-22 15:16:45 +02:00
Motiejus Jakštys
78dc63669d
add tests for upper limits
2022-02-22 15:04:59 +02:00
Motiejus Jakštys
26fbfc5f08
fix non-packed iterator
2022-02-22 14:37:47 +02:00
Motiejus Jakštys
ab0562950c
add some guard rails w.r.t. padding
2022-02-21 13:54:35 +02:00
Motiejus Jakštys
f77d94e624
remove padding
2022-02-21 13:48:11 +02:00
Motiejus Jakštys
91849c128f
non-packed user iterator
2022-02-20 14:13:06 +02:00
Motiejus Jakštys
f2434e3d3c
working on iterator
2022-02-20 13:47:17 +02:00
Motiejus Jakštys
54ec710f10
wip iterator
2022-02-20 12:44:21 +02:00
Motiejus Jakštys
e54c153dd8
style
2022-02-20 09:47:47 +02:00
Motiejus Jakštys
9487194c95
simplify catch
2022-02-20 09:19:59 +02:00
Motiejus Jakštys
988ab9f6d4
update padded user alignment
2022-02-20 09:10:25 +02:00
Motiejus Jakštys
330db487ac
add roundUp assertion
2022-02-19 22:12:49 +02:00
Motiejus Jakštys
4dbc7b03bc
buffer is a pointer
2022-02-19 22:10:55 +02:00
Motiejus Jakštys
ae2d3d5443
generalize padding funcs
2022-02-19 21:23:33 +02:00
Motiejus Jakštys
2fc925923f
wip between-user padding
2022-02-19 18:20:50 +02:00
Motiejus Jakštys
4e45c6e5a9
simplify appendUser
2022-02-19 16:56:53 +02:00
Motiejus Jakštys
ca28332126
add unit tests for padding
2022-02-19 16:04:13 +02:00
Motiejus Jakštys
623060dac3
remove unnecessary cast
2022-02-19 15:50:13 +02:00
Motiejus Jakštys
fd1cab251d
fix shell index offsets
2022-02-19 15:48:51 +02:00
Motiejus Jakštys
13b75e8046
user packing
2022-02-19 11:35:29 +02:00
Motiejus Jakštys
93c6a1c12a
rename shell_len_or_place to _idx
2022-02-18 20:36:32 +02:00
Motiejus Jakštys
2964c918cc
remove user.zig dependency on shell.zig
2022-02-18 20:35:42 +02:00
Motiejus Jakštys
da727113e5
filling packed user
2022-02-18 20:29:45 +02:00
Motiejus Jakštys
eacfc08592
fix PackedUser test
...
It is 120 bits long. @sizeOf returns 128, because, I guess, it tries to
word-align it (not byte-align it).
We are OK with non-word-aligned user struct, since it will have an
arbitrary []u8 slice right after it with the string data. However,
byte-alignment is important.
2022-02-18 17:40:04 +02:00
Motiejus Jakštys
1fe23aa1e5
adding user
2022-02-18 17:35:01 +02:00
Motiejus Jakštys
411fb91fd1
test and README tiny updates
2022-02-18 17:26:35 +02:00
Motiejus Jakštys
80ec63b6a4
fix casting functions, add some tests
2022-02-18 15:28:04 +02:00
Motiejus Jakštys
44107bac51
adding simple header validation
2022-02-18 07:42:43 +02:00
Motiejus Jakštys
ed1e464305
header may err
2022-02-18 07:16:11 +02:00
Motiejus Jakštys
8c8570e6d1
start with Header
2022-02-17 11:55:05 +02:00
Motiejus Jakštys
00cf0e4a66
hashmap: use getOrPut
2022-02-17 11:11:16 +02:00
Motiejus Jakštys
d9c8e69440
make Shell Writer work.
2022-02-17 10:54:39 +02:00
Motiejus Jakštys
e2bc4e6094
also add a failing shell test
2022-02-16 11:55:13 +02:00
Motiejus Jakštys
67e8a1d83c
add a test for resolving offsets
2022-02-16 11:48:53 +02:00
Motiejus Jakštys
e55d01ed15
fix memleak
2022-02-16 11:32:27 +02:00
Motiejus Jakštys
b43ba9c672
further along with popcon
2022-02-16 11:21:51 +02:00
Motiejus Jakštys
f584642cca
shellpop skeleton
2022-02-15 20:27:24 +02:00
Motiejus Jakštys
1e084cc3fb
less error handling
2022-02-10 06:12:12 +02:00
Motiejus Jakštys
88d2a0f470
compile cmph from source
2022-02-10 06:07:52 +02:00
Motiejus Jakštys
3b7c63ad9f
first steps
2022-02-09 12:53:01 +02:00