aboutsummaryrefslogtreecommitdiff
path: root/TODO
diff options
context:
space:
mode:
authorandersen <andersen@69ca8d6d-28ef-0310-b511-8ec308f3f277>2004-08-26 22:18:59 +0000
committerandersen <andersen@69ca8d6d-28ef-0310-b511-8ec308f3f277>2004-08-26 22:18:59 +0000
commitdba2d5102b5841853c25721682d3b0d295365963 (patch)
treecf0f347d2c4a0cd48c6d5b4cc83aead35726434e /TODO
parent74693c0d771cc5e0b80d091b3bba4625956ff309 (diff)
downloadbusybox-w32-dba2d5102b5841853c25721682d3b0d295365963.tar.gz
busybox-w32-dba2d5102b5841853c25721682d3b0d295365963.tar.bz2
busybox-w32-dba2d5102b5841853c25721682d3b0d295365963.zip
Tito writes:
Hi, I've spent the half night staring at the devilish my_getpwuid and my_getgrgid functions trying to find out a way to avoid actual and future potential buffer overflow problems without breaking existing code. Finally I've found a not intrusive way to do this that surely doesn't break existing code and fixes a couple of problems too. The attached patch: 1) changes the behaviour of my_getpwuid and my_getgrgid to avoid potetntial buffer overflows 2) fixes all occurences of this function calls in tar.c , id.c , ls.c, whoami.c, logger.c, libbb.h. 3) The behaviour of tar, ls and logger is unchanged. 4) The behavior of ps with somewhat longer usernames messing up output is fixed. 5) The only bigger change was the increasing of size of the buffers in id.c to avoid false negatives (unknown user: xxxxxx) with usernames longer than 8 chars. The value i used ( 32 chars ) was taken from the tar header ( see gname and uname). Maybe this buffers can be reduced a bit ( to 16 or whatever ), this is up to you. 6) The increase of size of the binary is not so dramatic: size busybox text data bss dec hex filename 239568 2300 36816 278684 4409c busybox size busybox_fixed text data bss dec hex filename 239616 2300 36816 278732 440cc busybox 7) The behaviour of whoami changed: actually it prints out an username cut down to the size of the buffer. This could be fixed by increasing the size of the buffer as in id.c or avoid the use of my_getpwuid and use getpwuid directly instead. Maybe this colud be also remain unchanged...... Please apply if you think it is ok to do so. The diff applies on today's cvs tarball (2004-08-25). Thanks in advance, Ciao, Tito git-svn-id: svn://busybox.net/trunk/busybox@9165 69ca8d6d-28ef-0310-b511-8ec308f3f277
Diffstat (limited to 'TODO')
0 files changed, 0 insertions, 0 deletions