MirBSD Korn Shell for Jehanne
667d792d6a
– possible integer overflows in memory allocation, mostly ‣ multiplication: all are checked now ‣ addition: reviewed them, most were “proven” or guessed to be “almost” impossible to run over (e.g. when we have a string whose length is taken it is assumed that the length will be more than only a few bytes below SIZE_MAX, since code and stack have to fit); some are checked now (e.g. when one of the summands is an off_t); most of the unchecked ones are annotated now ⇒ cost (MirBSD/i386 static): +76 .text ⇒ cost (Debian sid/i386): +779 .text -4 .data – on Linux targets, setuid() setresuid() setresgid() can fail with EAGAIN; check for that and, if so, warn once and retry infinitely (other targets to be added later once we know that they are “insane”) ⇒ cost (Debian sid/i386): +192 .text (includes .rodata) • setmode.c: Do overflow checking for realloc() too; switch back from calloc() to a checked malloc() for simplification while there • define -DIN_MKSH and let setmode.c look a tad nicer while here |
||
---|---|---|
Build.sh | ||
check.pl | ||
check.t | ||
dot.mkshrc | ||
edit.c | ||
emacsfn.h | ||
eval.c | ||
exec.c | ||
expr.c | ||
funcs.c | ||
histrap.c | ||
jobs.c | ||
lalloc.c | ||
lex.c | ||
main.c | ||
Makefile | ||
misc.c | ||
mksh.1 | ||
setmode.c | ||
sh_flags.h | ||
sh.h | ||
shf.c | ||
strlcpy.c | ||
syn.c | ||
tree.c | ||
var_spec.h | ||
var.c |