aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2004-04-06Michael Tokarev, mjt at tls dot msk dot ru writes:Eric Andersen
Fix parsing of all tag-value pairs (in modules.conf in particular). Without this fix, code chokes badly on lines where either value or both tag+value are missing, like bare alias line, or alias w/o the value like alias some-module (syntactically incorrect, but no need for coredumps either).
2004-04-06Michael Tokarev, mjt at tls dot msk dot ru writes:Eric Andersen
alias 'off' parsing fix. It is not alias off module it is alias module off
2004-04-06Michael Tokarev, mjt at tls dot msk dot ru writes:Eric Andersen
Initialize all fields of struct dep_t. Without that, e.g. `busybox modprobe -v char-major-10-144' *sometimes* fails this way (strace): write(1, "insmod nvram `\213\f\10\n", 21) = 21 Note the garbage after module name which is taken from the m_options field, which is not initialized in the alias reading/parsing part. (Shell properly complains to this command, telling it can't find the closing backtick)
2004-04-06Christian Grigis, christian.grigis at smartdata dot ch writes:Eric Andersen
Hello everyone, Busybox's insmod fails to locate a module when that module is the only one existing in the /lib/modules directory (with a unique name). Example: # find /lib/modules/ -type f /lib/modules/kernel/drivers/char/bios.o # insmod bios insmod: bios.o: no module by that name found # touch /lib/modules/dummy # find /lib/modules/ -type f /lib/modules/kernel/drivers/char/bios.o /lib/modules/dummy # insmod bios Using /lib/modules/kernel/drivers/char/bios.o As long as there is another file in the /lib/modules directory, insmod finds it OK. I tracked the problem down to 'check_module_name_match()' in insmod.c: It returns TRUE when a match is found, and FALSE otherwise. In the case where there is only one module in the /lib/modules directory (or more that one module, but all with the same name), 'recursive_action()' will return TRUE and we end up on line 4196 in 'insmod.c' which returns an error. [The reason it works with more than one module with different names is that in this case there will always be one not matching, 'recursive_action()' will return FALSE and we end up in line 4189.] Now, from the implementation of 'recursive_action()' and from other usages of it (tar.c, etc.), it seems to me that FALSE should be returned to indicate that we want to stop the recursion, so TRUE and FALSE should be inverted in 'check_module_name_match()'. At the same time, 'recursive_action()' continues to recurse even after the recursive call has returned FALSE; again in my understanding and other usages of it, we can safely stop recursing at this point. Here is my patch against 1.00-pre8:
2004-04-06Yet more 'make allyesconfig' adjustmentsEric Andersen
2004-04-06Make 'allyesconfig' be a bit less stupidEric Andersen
2004-04-06Minor tar test updateEric Andersen
2004-04-06Simplify, make formatting better match the procps versionEric Andersen
2004-04-06Kill off the old 'tests' stuff. Write a ton of new tests for theEric Andersen
'testsuite' dir. Fix a bunch of broken tests. Fix the testsuite 'runtest' script so it actually reports all failures and provides meaningful feedback. -Erik
2004-04-06Fix non standard 'date -R' formattingEric Andersen
2004-04-06Fix the test suite script so it actually works and actually flagsEric Andersen
all errors as such. Make verbose mode exit on FAIL and provide a printout of the failed test run.
2004-04-05Some test additionsEric Andersen
2004-04-05Patch adding support for ibs= and obs= to ddEric Andersen
2004-04-05Per suggestion by Pawel Sakowski, fix the dash_arith() prototypeEric Andersen
to return a long. We were needlessly truncating to an int.
2004-04-05Tito, farmatito at tiscali dot it writes:Eric Andersen
Hi to all, I discovered a little bug in hdparm.c (really two little bugs...I've made...sigh! Mea culpa). Some vars were modified only locally and this could lead to wrong results to be displayed with the -I switch and maybe with others. Attached is a patch that fix it ( +88b). Also attached is second patch that reduces the size a little bit: text data bss dec hex filename 27984 624 900 29508 7344 hdparm.o (without bug-fix) 28072 624 900 29596 739c hdparm.o (with bug-fix) 28141 624 900 29665 73e1 hdparm.o (original) but maybe this one can wait as we are in a feature freeze. Ciao, Tito
2004-04-05rename uncompress.c to decompress_uncompress.cEric Andersen
rename unzip.c to decompress_unzip.c
2004-04-03Everything should be made as simple as possible. But no simpler.Eric Andersen
2004-04-01The last patch broke:Rob Landley
sed -i "/^boo/a fred" ipsec.conf Which works in gnu sed. (And is _supposed_ to strip all the whitespace before "fred".) It also broke: sed -i -e "/^boo/a \\" -e " fred" ipsec.conf I.E. there can legally be spaces between the a and the backslash at the end of the line. And strangely enough, gnu sed accepts the following syntax as well: sed -i "/^boo/a \\ fred" ipsec.conf Which is a way of having the significant whitespace at the start of the line, all on one line. (But notice that the whitespace BEFORE the slash is still stripped, as is the slash itself. And notice that the naieve placement of "\n" there doesn't work, it puts an n at the start of the appended line. The double slashing is for shell escapes because you could escape the quote, you see. It's turned into a single backslash. But \n there is _not_ turned into a newline by the shell. So there.) This makes all three syntaxes work in my tests. I should probably start writing better documentation at some point. I posted my current sedtests.py file to the list, which needs a lot more tests added as well...
2004-03-31Patch from Hideki IWAMOTO adding support for 'cmp -n'Eric Andersen
2004-03-31Junio Hamano, junio at twinsun dot com writes:Eric Andersen
The sed command in busybox 1.0.0-pre8 loses leading whitespace in 'a' command ('i' and 'c' commands are also affected). A patch to fix this is attached at the end of this message. The following is a transcript that reproduces the problem. The first run uses busybox 1.0.0-pre3 as "/bin/sed" command, which gets the expected result. Later in the test, /bin/sed symlink is changed to point at busybox 1.0.0-pre8 and the test script is run again, which shows the failure. === reproduction recipe === * Part 1. Use busybox 1.0.0-pre3 as sed; this works. root# cd /tmp root# cat 1.sh #!/bin/sh cd /tmp rm -f ipsec.conf ipsec.conf+ cat >ipsec.conf <<\EOF version 2.0 config setup klipsdebug=none plutodebug=none plutostderrlog=/dev/null conn %default keyingtries=1 ... EOF sed -e '/^config setup/a\ nat_traversal=yes' ipsec.conf >ipsec.conf+ mv -f ipsec.conf+ ipsec.conf root# sh -x 1.sh + cd /tmp + rm -f ipsec.conf ipsec.conf+ + cat + sed -e /^config setup/a\ nat_traversal=yes ipsec.conf + mv -f ipsec.conf+ ipsec.conf root# cat ipsec.conf version 2.0 config setup nat_traversal=yes klipsdebug=none plutodebug=none plutostderrlog=/dev/null conn %default keyingtries=1 ... root# sed --version sed: invalid option -- - BusyBox v1.00-pre3 (2004.02.26-18:47+0000) multi-call binary Usage: sed [-nef] pattern [files...] * Part 2. Continuing from the above, use busybox 1.0.0-pre8 as sed; this fails. root# ln -s busybox-pre8 /bin/sed-8 root# mv /bin/sed-8 /bin/sed root# sed --version This is not GNU sed version 4.0 root# sed -- BusyBox v1.00-pre8 (2004.03.30-02:44+0000) multi-call binary Usage: sed [-nef] pattern [files...] root# sh -x 1.sh + cd /tmp + rm -f ipsec.conf ipsec.conf+ + cat + sed -e /^config setup/a\ nat_traversal=yes ipsec.conf + mv -f ipsec.conf+ ipsec.conf root# cat ipsec.conf version 2.0 config setup nat_traversal=yes klipsdebug=none plutodebug=none plutostderrlog=/dev/null conn %default keyingtries=1 ... root# === reproduction recipe ends here === This problem was introduced in 1.0.0-pre4. The problem is that the command argument parsing code strips leading whitespaces too aggressively. When running the above example, the piece of code in question gets "\n\tnat_traversal=yes" as its argument in cmdstr variable (shown part in the following patch). What it needs to do at this point is to strip the first newline and nothing else, but it instead strips all the leading whitespaces at the beginning of the string, thus losing the tab character. The following patch fixes this.
2004-03-31Patch from Thomas Winkler:Eric Andersen
ifconfig did not look up hostnames, so ifconfig lo localhost would not work, you have to do ifconfig lo 127.0.0.1
2004-03-31Patch from Thomas Winkler showing the the system time for each processEric Andersen
when running 'top'
2004-03-31Patch from Thomas Winkler -- vi -R did not workEric Andersen
2004-03-30Sigh. what a mess.Eric Andersen
2004-03-30As waldi noticed, checks for the size of an off_t and castingEric Andersen
etc was also redundant and possibly buggy...
2004-03-30Go ahead and kill off the FDISK_SUPPORT_LARGE_DISKS option,Eric Andersen
as it is redundant....
2004-03-30The fdisk llseek junk was redundant, since both uClibc and glibcEric Andersen
automatically promote lseek and friends to their 64 bit counterparts when CONFIG_LFS is enabled, since it enables __USE_FILE_OFFSET64
2004-03-29As noted by Martin Schwenke, the example for find was wrongEric Andersen
2004-03-27Yet more doc cleanupsEric Andersen
2004-03-27Add missing include filesEric Andersen
2004-03-27passwd and sulogin also need libcrypt, via libbb/pw_encrypt()Eric Andersen
2004-03-27s/fileno\(stdin\)/STDIN_FILENO/gEric Andersen
s/fileno\(stdout\)/STDOUT_FILENO/g
2004-03-27Vladimir N. Oleynik (vodz) writes:Eric Andersen
Ok. Last patch reduce 73 bytes for compensate (and over) your changes ;-) Comments: Added cin_fileno variable, auto setted to 0 from BSS and have "eq" stdin descriptor if isatty(stout)==0, removed global variable FILE* cin. Removed default setting to terminal_width/terminal_height, this used only from main() and setted after call get_terminal_width_height() always correct. Variable please_display_more_prompt changed to bits logic, have size reducing. --w vodz
2004-03-27Update docsEric Andersen
2004-03-23Brian Pomerantz writes:Eric Andersen
I've noticed a bug in the "autowidth" feature more, and is probably in others. The call to the function get_terminal_width_height() passes in a file descriptor but that file descriptor is never used, instead the ioctl() is called with 0. In more_main() the call to get_terminal_width_height() passes 0 as the file descriptor instead of fileno(cin). This isn't a problem when you more a file (e.g. "more /etc/passwd") but when you pipe a file to it (e.g. "cat /etc/passwd | more") the size of the terminal cannot be determined because file descriptor 0 is not a terminal. The fix is simple, I've attached a patch for more.c and get_terminal_width_height.c. BAPper
2004-03-22Some corrections from vodz:Robert Griebl
- Make -u/-l mutually exclusive - Minor size reduction
2004-03-21The utc variable was not modified according to the -u/-l command lineRobert Griebl
parameters.
2004-03-20Tito noticed a printf that should have been a bb_error_msg.Eric Andersen
2004-03-19Oops.. got a bit to aggressive with size optimization and global replace. :-(Manuel Novoa III
2004-03-19As noted in a patch from Kendrick Hamilton, rmmod was onlyEric Andersen
half way converted, and still used the old delete_module(), call rather than a syscall, in one spot.
2004-03-19Add missing ELFCLASSM for m68kEric Andersen
2004-03-19Only use R_68K_GOTOFF if it is definedEric Andersen
2004-03-19Fix broken arg parsing (was not passing pointer to items so p, argc, and argvEric Andersen
were only modified locally). Fix error reporting to properly describe why ioctls fail.
2004-03-16Patch from vodz to fix the dynamic vars patch, which I should notEric Andersen
have checked in. Vladimir writes: Your patch have many problem. 1. You always added + time(). This cannot reset RANDOM=value for debuging with replay sequential. 2. Hmm. I examine bash 2.04 source. This pseudorandom generator use low bits of counter value. You use high bits. This make bad pseudorandom values after have 0-value. For example, if + time() do remove, your generator always return 0 after first generate 0. 3. Memory leak per call. Use ash-unlike unecessary bb_strdup function. 4. Unsupport show last $RANDOM value for "set" and "export" command. 5. Bloat code. Busybox-unlike patch - added unstandart feature as default hardcode. Last patch attached. Erik, why you apply Paul patch with have 5-th point problem? :( Last patch have ash change xwrite() to fresh libbb/bb_full_write interfase (haved loop after EINTR). --w vodz
2004-03-15Oops. Using the wrong variable was a rather stupidEric Andersen
thing for me to do.
2004-03-15Remove trailing whitespace. Update copyright to include 2004.Eric Andersen
2004-03-13I redid route.Manuel Novoa III
2004-03-13Update docs for start_stop_daemon to match reality. UpdateEric Andersen
the reality a bit to better match debian behavior.
2004-03-13Fix some doc generation problemsEric Andersen
2004-03-12Hideki IWAMOTO writes:Eric Andersen
Current `tr' implementation has a problem, if `plain char' is signed. [current cvs version] >echo a | _install/usr/bin/tr '\0' '\377' Segmentation fault (core dumped) [patched version] >echo a | _install/usr/bin/tr '\0' '\377' a