summaryrefslogtreecommitdiff
path: root/util/libreboot-utils
AgeCommit message (Collapse)Author
13 hourslbutils/file ffree_and_set_null: err if nullLeah Rowe
free can take a null, that's fine, but my pointer to the pointer being freed should not be null. that is a bug. Signed-off-by: Leah Rowe <leah@libreboot.org>
13 hourslibreboot-utils: much stricter close() handlingLeah Rowe
remove close_warn and close_no_err make close_on_eintr a void, and abort on error instead of returning -1. a failed file closure is a world-ending event. burn accordingly. Signed-off-by: Leah Rowe <leah@libreboot.org>
13 hoursutil/mkhtemp: fix wrongful errno resetLeah Rowe
on error state, i was resetting errno unconditionally, which would then mask the real error. Signed-off-by: Leah Rowe <leah@libreboot.org>
14 hourslibreboot-utils: unified error handlingLeah Rowe
i now use a singleton hook function per program: nvmutil, mkhtemp and lottery call this at the startup of your program: (void) errhook(exit_cleanup); then provide that function. make it static, so that each program has its own version. if you're writing a program that handles lots of files for example, and you want to do certain cleanup on exit (including error exit), this can be quite useful. Signed-off-by: Leah Rowe <leah@libreboot.org>
15 hourslibreboot-utils: simplified pledge/unveil usageLeah Rowe
i no longer care about openbsd 5.9. we assume unveil is available, as has been the case for the past 12 years. i use wrappers for unveil and pledge, which means that i call them on every os. on OSes that don't have these, i just return. it's somewhat inelegant, but also means that i see errors more easily, e.g. misnamed variables inside previous ifdef OpenBSD blocks. Signed-off-by: Leah Rowe <leah@libreboot.org>
16 hourslibreboot-utils: extremely safe(ish) malloc usageLeah Rowe
yes, a common thing in C programs is one or all of the following: * use after frees * double free (on non-NULL pointer) * over-writing currently used pointer (mem leak) i try to reduce the chance of this in my software, by running free() through a filter function, free_if_not_null, that returns if a function is being freed twice - because it sets NULL after freeing, but will only free if it's not null already. this patch adds two functions: smalloc and vmalloc, for strings and voids. using these makes the program abort if: * non-null pointer given for initialisation * pointer to pointer is null (of course) * size of zero given, for malloc (zero bytes) i myself was caught out by this change, prompting me to make the following fix in fs_dirname_basename() inside lib/file.c: - char *buf; + char *buf = NULL; Yes. Signed-off-by: Leah Rowe <leah@libreboot.org>
17 hoursnvmutil: clamp rand (rejection sampling)Leah Rowe
clamp rand to eliminate modulo sampling; high values on the randomisation will bias the result. not really critical for mac addresses, but there's no reason not to have this. this patches reduces the chance that two libreboot users will generate the same mac addresses! Signed-off-by: Leah Rowe <leah@libreboot.org>
17 hoursutil/nvmutil: tidy up hextonumLeah Rowe
i had a bunch of hacks in here because i was previously using very buggy rand. now it's ok. Signed-off-by: Leah Rowe <leah@libreboot.org>
18 hoursrand.c: fix initialisation bug in mrkbufLeah Rowe
should be null on bad return Signed-off-by: Leah Rowe <leah@libreboot.org>
21 hourscleanupLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
23 hoursheaderLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
27 hoursutil/libreboot-utils: fix div by zero in rsizeLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
27 hoursutil/libreboot-utils: finish implementing hellLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
42 hourschallengeLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
45 hourscleanupLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2 dayscleanupLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2 daysfurther cleanupLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
2 dayslibreboot-utils: improved randomness testLeah Rowe
and the module bias handling is fully correct Signed-off-by: Leah Rowe <leah@libreboot.org>
2 daysmkhtemp rand: fix theoretical integer overflowLeah Rowe
extremely theoretical, with a T. T for theoretical. Signed-off-by: Leah Rowe <leah@libreboot.org>
2 daysrand/libreboot/utils: prevent div by zeroLeah Rowe
not really a thing. bufsiz would never be zero, unless the demon takes over linux Signed-off-by: Leah Rowe <leah@libreboot.org>
2 daysrand: fix modulo bias in rmallocLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
3 daysimprove 3Leah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
3 daysimprove 2Leah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
3 daysimproveLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
3 daysphrasingLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
3 daysnvmutil: remove errno handle in hextonumLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
3 daysREAL_POS_IO enable by default in nvmutilLeah Rowe
(for real pwrite/pread. don't use the compatibility one - it works perfectly, but using it is pointless and may have unknown bugs, even though i know it's probably perfect) Signed-off-by: Leah Rowe <leah@libreboot.org>
3 dayscleanupLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
3 daysnvmutil: fix lseek call when read pos i/o enabledLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
3 daysmkhtemp readmeLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
3 daysmore cleanup on rand.cLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
3 dayscleanupLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
3 daysfix makefileLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
3 dayslibreboot-utils: tidy up rand.cLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
3 dayslibreboot-utils: new function, scatn()Leah Rowe
concatenate an arbitrary number of strings, pointed to by char ** i'll use this and the next function, dcatn, in an upcoming feature planned for mkhtemp. Signed-off-by: Leah Rowe <leah@libreboot.org>
3 daysrmallocLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
3 daysutil/libreboot-utils: randomisation testLeah Rowe
to test the effectiveness of the rand function Signed-off-by: Leah Rowe <leah@libreboot.org>
3 dayscleanupLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
3 daysmkrstrLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
3 dayslbutils: new function, mkrbuf (random malloc)Leah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
3 dayslbutils: close fd on rset failureLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
3 daysfurther clarify intenttLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
3 dayslbutils, rset: err if zero bytes requestedLeah Rowe
similar to the logic about other failure states Signed-off-by: Leah Rowe <leah@libreboot.org>
3 daysdotLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
3 dayslbutils: also check null!Leah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
3 dayslbutils: clarify design regarding urandom/getrandomLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
3 dayslbutils, rand: err on zero return (fatal)Leah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
3 dayscleanupLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
3 dayslbutils: cast to prevent ub in rset()Leah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>
3 dayscleanupLeah Rowe
Signed-off-by: Leah Rowe <leah@libreboot.org>