Leah Rowe
dc6df36fe5
util/nvmutil: more asserts
...
Signed-off-by: Leah Rowe <leah@libreboot.org >
2026-03-26 06:59:41 +00:00
Leah Rowe
23fee345fd
util/nvmutil: nicer typedefs
...
now that i'm not using stdint, i can use sane
typedef names
Signed-off-by: Leah Rowe <leah@libreboot.org >
2026-03-26 06:59:41 +00:00
Leah Rowe
9cfae27bf4
util/nvmutil: remove stdint feature macro
...
and remove stdint
i don't need it. i typedef these ints myself
and i assert their size
Signed-off-by: Leah Rowe <leah@libreboot.org >
2026-03-26 06:59:41 +00:00
Leah Rowe
888107764d
util/nvmutil: safer offset check (use subtraction)
...
don't allow overflows
Signed-off-by: Leah Rowe <leah@libreboot.org >
2026-03-26 06:59:41 +00:00
Leah Rowe
abc484713a
util/nvmutil: check null pointer in io_args
...
Signed-off-by: Leah Rowe <leah@libreboot.org >
2026-03-26 06:59:41 +00:00
Leah Rowe
e1cd978f01
util/nvmutil: check overflow in io_args
...
Signed-off-by: Leah Rowe <leah@libreboot.org >
2026-03-26 06:59:41 +00:00
Leah Rowe
5f8593b581
util/nvmutil: fix offset validation
...
i didn't take into account partial writes, in io_args
this fixes it
unfortunately, this means i have to loosen the offset
check a bit, but it's fine
Signed-off-by: Leah Rowe <leah@libreboot.org >
2026-03-26 06:59:41 +00:00
Leah Rowe
6ad09f55e0
util/nvmutil: restrict pointers in io_args
...
Signed-off-by: Leah Rowe <leah@libreboot.org >
2026-03-26 06:59:41 +00:00
Leah Rowe
8e555f444c
util/nvmutil: check gbe file type before write
...
Signed-off-by: Leah Rowe <leah@libreboot.org >
2026-03-26 06:59:41 +00:00
Leah Rowe
47936f52e9
util/nvmutil: check gbe file size before write
...
re-check. very unlikely since the program doesn't run
for very long, but we have to check if the file has
changed. this is a basic check of file size.
we could probably check the contents too, but that
would be overkill.
Signed-off-by: Leah Rowe <leah@libreboot.org >
2026-03-26 06:59:41 +00:00
Leah Rowe
551470cf6f
util/nvmutil: lock gbe file
...
Signed-off-by: Leah Rowe <leah@libreboot.org >
2026-03-26 06:59:41 +00:00
Leah Rowe
afcdae1350
util/nvmutil: don't allow symlinks
...
Signed-off-by: Leah Rowe <leah@libreboot.org >
2026-03-26 06:59:41 +00:00
Leah Rowe
98466398f9
nvmutil: fix bound check in last commit
...
i was fixing the size, but it should be calculated
properly.
Signed-off-by: Leah Rowe <leah@libreboot.org >
2026-03-26 06:59:41 +00:00
Leah Rowe
e44b297db5
util/nvmutul: remove unused arg in io_args
...
Signed-off-by: Leah Rowe <leah@libreboot.org >
2026-03-26 06:59:41 +00:00
Leah Rowe
83f67bf02a
util/nvmutil: block bad offset in io_args
...
Signed-off-by: Leah Rowe <leah@libreboot.org >
2026-03-26 06:59:41 +00:00
Leah Rowe
14ab4c1b25
util/nvmutil: stricter i/o arg checks
...
Signed-off-by: Leah Rowe <leah@libreboot.org >
2026-03-26 06:59:41 +00:00
Leah Rowe
386f715a29
util/nvmutil: stricter i/o length check
...
Signed-off-by: Leah Rowe <leah@libreboot.org >
2026-03-26 06:59:41 +00:00
Leah Rowe
d8be79432c
util/nvmutil: rename len to nrw in i/o
...
consistent with prw()
i prefer nrw (number of rw operations)
Signed-off-by: Leah Rowe <leah@libreboot.org >
2026-03-26 06:59:41 +00:00
Leah Rowe
5ece694e67
util/nvmutil: tidy up prw()
...
Signed-off-by: Leah Rowe <leah@libreboot.org >
2026-03-26 06:59:41 +00:00
Leah Rowe
3e08c0724b
util/nvmutil: block O_APPEND in prw()
...
O_APPEND allows writes at EOF, thus breaking
positional read/write
Signed-off-by: Leah Rowe <leah@libreboot.org >
2026-03-26 06:59:41 +00:00
Leah Rowe
7836a2bbc6
util/nvmutil: stricter i/o errors
...
Signed-off-by: Leah Rowe <leah@libreboot.org >
2026-03-26 06:59:41 +00:00
Leah Rowe
0c9bcaaba8
util/nvmutil: fix entropy issue
...
the time difference used here could go negative, which
would overflow in the xor op on mix, leading to a biased
entropy pool. we want to ensure that they numbers do
not overflow, because here they are cast to unsigned
which would then produce very large numbers.
Signed-off-by: Leah Rowe <leah@libreboot.org >
2026-03-26 06:59:41 +00:00
Leah Rowe
475c50932e
nvmutil: cast integer in printf
...
Signed-off-by: Leah Rowe <leah@libreboot.org >
2026-03-26 06:59:41 +00:00
Leah Rowe
6f26bd5db7
TODO
...
Signed-off-by: Leah Rowe <leah@libreboot.org >
2026-03-26 06:59:41 +00:00
Leah Rowe
1abc40997f
util/nvmutil: check defines/enum via assert
...
not at runtime
Signed-off-by: Leah Rowe <leah@libreboot.org >
2026-03-26 06:59:41 +00:00
Leah Rowe
435b67327e
util/nvmutil: r_type check in rw_gbe_file_part
...
i already send the right arg anyway. this is a
preventative bug fix against future maintenance.
Signed-off-by: Leah Rowe <leah@libreboot.org >
2026-03-26 06:59:41 +00:00
Leah Rowe
54536b0454
util/nvmutil: remove pointless check
...
already checked below, then err()
Signed-off-by: Leah Rowe <leah@libreboot.org >
2026-03-26 06:59:41 +00:00
Leah Rowe
f99921d717
util/nvmutil: add missing cast
...
Signed-off-by: Leah Rowe <leah@libreboot.org >
2026-03-26 06:59:41 +00:00
Leah Rowe
ddf13a7e74
util/nvmutil: err in rw_file_exact on zero return
...
zero never occurs, because rw_file_once never returns zero,
but only rw_file_once determines that. rw_file_exact must
handle every possible error.
right now, if that call returns zero, rw_file_exact would
have an infinite loop.
this doesn't actually happen at the moment, so this is a
preventative bug fix.
Signed-off-by: Leah Rowe <leah@libreboot.org >
2026-03-26 06:59:41 +00:00
Leah Rowe
a0ca693d42
util/nvmutil: increment rc at end of rw_file_exact
...
for fussy static analysers and/or compilers
Signed-off-by: Leah Rowe <leah@libreboot.org >
2026-03-26 06:59:41 +00:00
Leah Rowe
1dbd679c0c
util/nvmutil: further tidy up prw()
...
Signed-off-by: Leah Rowe <leah@libreboot.org >
2026-03-26 06:59:41 +00:00
Leah Rowe
e239a3107f
util/nvmutil: clean up i/o functions
...
properly verify the value of the arguments, with
asserts.
add simpler runtime checks in-function, on prw,
rw_file_once and rw_file_exact.
variable names in english now, and the code is
cleaner, while being functionally equivalent.
Signed-off-by: Leah Rowe <leah@libreboot.org >
2026-03-26 06:59:41 +00:00
Leah Rowe
347e39bab7
util/nvmutil: further tidy up rw_file_once
...
Signed-off-by: Leah Rowe <leah@libreboot.org >
2026-03-26 06:59:41 +00:00
Leah Rowe
b4154dd29b
util/nvmutil: minor cleanup: rw_file_once
...
Signed-off-by: Leah Rowe <leah@libreboot.org >
2026-03-26 06:59:41 +00:00
Leah Rowe
a85f2898e2
util/nvmutil: remove dead code
...
useless check. will never be true.
Signed-off-by: Leah Rowe <leah@libreboot.org >
2026-03-26 06:59:41 +00:00
Leah Rowe
fdd99a9a45
util/nvmutil: remove pointless comment
...
itt's totally obvious
Signed-off-by: Leah Rowe <leah@libreboot.org >
2026-03-26 06:59:41 +00:00
Leah Rowe
5f6a721fa0
util/nvmutil: reduced indentation in rw_file_once
...
Signed-off-by: Leah Rowe <leah@libreboot.org >
2026-03-26 06:59:41 +00:00
Leah Rowe
22af92b473
another correction
...
Signed-off-by: Leah Rowe <leah@libreboot.org >
2026-03-12 18:25:34 +00:00
Leah Rowe
5b92b00bad
util/nvmutil: fix regression on openbsd
...
when i removed arc4random integration, i forgot
to change this line back. oops!
Signed-off-by: Leah Rowe <leah@libreboot.org >
2026-03-12 18:23:17 +00:00
Leah Rowe
1cce4871e2
TODO
...
Signed-off-by: Leah Rowe <leah@libreboot.org >
2026-03-12 17:55:54 +00:00
Leah Rowe
cde28a8fbb
TODO
...
Signed-off-by: Leah Rowe <leah@libreboot.org >
2026-03-12 17:52:05 +00:00
Leah Rowe
08b9595bc5
TODO
...
Signed-off-by: Leah Rowe <leah@libreboot.org >
2026-03-12 17:31:25 +00:00
Leah Rowe
ab9ee73350
util/nvmutil: mitigate buggy libc i/o
...
Signed-off-by: Leah Rowe <leah@libreboot.org >
2026-03-12 16:34:33 +00:00
Leah Rowe
303c382eae
util/nvmutil: implement zero-byte r/w timeout
...
Signed-off-by: Leah Rowe <leah@libreboot.org >
2026-03-12 16:24:36 +00:00
Leah Rowe
9656e78c3a
TODO
...
Signed-off-by: Leah Rowe <leah@libreboot.org >
2026-03-12 16:16:09 +00:00
Leah Rowe
571c474866
util/nvmutil: add some useful comments
...
Signed-off-by: Leah Rowe <leah@libreboot.org >
2026-03-12 16:10:28 +00:00
Leah Rowe
1fb720e1e6
util/nvmutil: split up rw_file_exact
...
Signed-off-by: Leah Rowe <leah@libreboot.org >
2026-03-12 16:03:17 +00:00
Leah Rowe
48f124a2e8
fix indentation
...
i was editting this in another editor
Signed-off-by: Leah Rowe <leah@libreboot.org >
2026-03-12 15:34:10 +00:00
Leah Rowe
f04b796dcc
util/nvmutil: add jitter to fallback_rand entropy
...
Signed-off-by: Leah Rowe <leah@libreboot.org >
2026-03-12 14:36:01 +00:00
Leah Rowe
38c3889f67
util/nvmutil: improved entropy in fallback_rand
...
Signed-off-by: Leah Rowe <leah@libreboot.org >
2026-03-12 14:32:46 +00:00