summaryrefslogtreecommitdiff
path: root/libbb
AgeCommit message (Collapse)Author
2005-08-10Major rewrite of mount, umount, losetup. Untangled lots of code, shrunkRob Landley
things down a bit, fixed a number of funky corner cases, added support for several new features (things like mount --move, mount --bind, lazy unounts, automatic detection of loop mounts, and so on). Probably broke several other things, but it's fixable. (Bang on it, tell me what doesn't work for you...) Note: you no longer need to say "-o loop". It does that for you when necessary. Still need to add "user mount" support, which involves making mount suid. Not too hard to do under the new infrastructure, just haven't done it yet... The previous code had the following notes, that belong in the version control comments: - * 3/21/1999 Charles P. Wright <cpwright@cpwright.com> - * searches through fstab when -a is passed - * will try mounting stuff with all fses when passed -t auto - * - * 1999-04-17 Dave Cinege...Rewrote -t auto. Fixed ro mtab. - * - * 1999-10-07 Erik Andersen <andersen@codepoet.org>. - * Rewrite of a lot of code. Removed mtab usage (I plan on - * putting it back as a compile-time option some time), - * major adjustments to option parsing, and some serious - * dieting all around. - * - * 1999-11-06 mtab support is back - andersee - * - * 2000-01-12 Ben Collins <bcollins@debian.org>, Borrowed utils-linux's - * mount to add loop support. - * - * 2000-04-30 Dave Cinege <dcinege@psychosis.com> - * Rewrote fstab while loop and lower mount section. Can now do - * single mounts from fstab. Can override fstab options for single - * mount. Common mount_one call for single mounts and 'all'. Fixed - * mtab updating and stale entries. Removed 'remount' default. - *
2005-08-09implemented a builtin echo command in ash. moved the guts of thePaul Fox
echo applet into libbb, and now call bb_echo() from both echo.c and ash.c
2005-07-30apgo in Bug 322 writes: kill off CONFIG_FEATURE_MTAB_FILENAMEMike Frysinger
2005-07-27move the ifdef to after libbb.h include, so it can do some good.Paul Fox
2005-07-27use toplevel ARFLAGS and update default ARFLAGS to be quietMike Frysinger
2005-07-262005-04-05 Shaun Jackman <sjackman@gmail.com>Mike Frysinger
* libbb/printf.c: Check for __NEWLIB_H__ before __GLIBC__.
2005-07-26no longer used as reported by apgo in Bug 348Mike Frysinger
2005-07-22ifdef all of loop.c with CONFIG_FEATURE_MOUNT_LOOP. won'tPaul Fox
compile due to CONFIG_FEATURE_MOUNT_LOOP_MAX otherwise. reported by Stephane Billiart.
2005-07-19applying fix for:Paul Fox
0000117: Remove linefeed after overwrite prompt using cp -i User input not on the same line as the prompt when about to overwrite a file.
2005-07-19applying fix from:Paul Fox
0000068: mount limited to max 8 loop devices (patch provided) (made minor wording change for config help message)
2005-07-19applying fix from:Paul Fox
0000067: cp -p produces misleading error message
2005-05-11change the hardcoded error constant (0x80000000UL) to a nice flexible define ↵Mike Frysinger
(BB_GETOPT_ERROR)
2005-05-11now that mjn3 explained it to me, add documentation for the 3rd field in ↵Mike Frysinger
long opts
2005-05-10add documentation for long options and touch up the current docs now that i ↵Mike Frysinger
actually understand how to use the function myself :)
2005-05-09syntax/whitespace touchupMike Frysinger
2005-05-03Shaun Jackman said:Rob Landley
This patch adds a CONFIG_FEATURE_CLEAN_UP stanza, and also adds an ifdef around the SIOCGIFMAP call.
2005-05-03A patch from Takeharu KATO to update/fix SE-Linux support.Rob Landley
2005-05-03Revert Tito's patch to zcip. My bad, David Brownell had objected and I missedRob Landley
it...
2005-05-01On Tuesday 19 April 2005 21:10, Tito wrote and today added:Rob Landley
> Hi, > this is a first attempt of size optimization for zcip taking into account all > the hints given so far on the list. > I've applied just the more obvious busyboxifications so maybe it could be > optimized more. BTW: I've ripped out a lot of debug code and changed c++ // comments to /* */ as both were rather confusing for a newbie like me. ;-) Sorry to the author for that. I know that this makes mantaining the code easier, but I'm simple minded....
2005-04-27Correct errors preventing busybox tar from working properly,Eric Andersen
fixing bug http://bugs.uclibc.org/view.php?id=231
2005-04-18In Bug 5, Tito writes:Mike Frysinger
This is a first attempt to improve the comments of getopt_ulflags.c. Maybe under some aspects the text could be refined, but so far it is already usable and should help people who "avoided getopt_ulflags as the pest" to understand how it works. This patch was created with the help of Vodz, the author of the code, who explained me patiently how getopt_ulflags works and with the help of Paul Fox, who corrected my broken english. So thanks and merits should go to them also.
2005-04-16Patch from Bernhard Fischer to make a bunch of symbols staticEric Andersen
which were otherwise cluttering the global namespace.
2005-04-16Rework to fix http://bugs.uclibc.org/view.php?id=107Eric Andersen
2005-04-16Add bb_msg_read_errorEric Andersen
2005-04-14fake out support for POSIX -H and -L options since busybox cp dereferences ↵Mike Frysinger
everything by default
2005-03-04Shaun Jackman writes: Fix typo. Use __NR_umount2 instead of __NR_pivot_root.Mike Frysinger
2005-03-04add some more commentsMike Frysinger
2005-03-04newlib fixe from Shaun JackmanMike Frysinger
2005-01-24Sort rewrite to be SUSv3 compliant. New config option, updated help, andRob Landley
a couple of infrastructure bits.
2005-01-04Dear andersen:Eric Andersen
Is the change on libbb/loop.c which you commited in 2005/1/3 effective really? The __GLIBC__ macro and __UCLIBC__ macro are defined in feature.h in glibc source, so the change may not be effective. If you want to check this with __GLIBC__, feature.h header is needed. Some architectures(e.g. PPC series) need to include linux/posix_types.h in stead of asm/posix_types.h, so the patch which is attached with this mail include <linux/posix_types.h>.
2005-01-03perhaps a better fixEric Andersen
2004-12-09Workaround for uClibc-specific header problem described here:Rob Landley
http://www.busybox.net/lists/busybox/2004-December/013276.html Rob
2004-10-13Make certain clients of bb_make_directory default to honoringEric Andersen
the user's umask
2004-10-08Patch from Claus Klein to increase, and make more apparentEric Andersen
the hard coded limit on the number of mounts
2004-10-08Tito writes:Eric Andersen
Hi to all, This patch contains just some fixes for some misleading comments in my_getpwuid.c and my_getug.c. The code is untouched so this patch will not cause troubles. Please apply. Thanks in advance and Ciao, Tito
2004-10-08egor duda writes:Eric Andersen
Hi! I've created a patch to busybox' build system to allow building it in separate tree in a manner similar to kbuild from kernel version 2.6. That is, one runs command like 'make O=/build/some/where/for/specific/target/and/options' and everything is built in this exact directory, provided that it exists. I understand that applyingc such invasive changes during 'release candidates' stage of development is at best unwise. So, i'm currently asking for comments about this patch, starting from whether such thing is needed at all to whether it coded properly. 'make check' should work now, and one make creates Makefile in build directory, so one can run 'make' in build directory after that. One possible caveat is that if we build in some directory other than source one, the source directory should be 'distclean'ed first. egor
2004-10-08Patch from Michael Tokarev:Eric Andersen
Scenario: touch x -- creates plain file name `x' mkdir x -- exits successefully libbb/make_directory.c, bb_make_directory(), contains the following code: if (mkdir(path, 0777) < 0) { /* If we failed for any other reason than the directory * already exists, output a diagnostic and return -1.*/ if (errno != EEXIST) { fail_msg = "create"; umask(mask); break; } /* Since the directory exists, don't attempt to change * permissions if it was the full target. Note that * this is not an error conditon. */ if (!c) { umask(mask); return 0; } } The assumption that EEXIST error is due to that the *directory* already exists is wrong: any file type with that name will cause this error to be returned. Proper way IMHO will be is to stat() the path and check whenever this is really a directory. Below (attached) is a patch to fix this issue.
2004-09-24Remove this error message at Vodz request, it was misleading.Glenn L McGrath
2004-09-15Tito writes,Glenn L McGrath
"This patch fixes all the bugs in id previously spotted by vodz and me. The binary size increased a bit, but now it should work as expected."
2004-09-02No longer neededEric Andersen
2004-09-02Tito writes:Eric Andersen
Hi Erik, Hi to all, This is part five of the my_get*id story. I've tweaked a bit this two functions to make them more flexible, but this changes will not affect existing code. Now they work so: 1) my_getpwuid( char *user, uid_t uid, int bufsize) if bufsize is > 0 char *user cannot be set to NULL on success username is written on static allocated buffer on failure uid as string is written to buffer and NULL is returned if bufsize is = 0 char *user can be set to NULL on success username is returned on failure NULL is returned if bufsize is < 0 char *user can be set to NULL on success username is returned on failure an error message is printed and the program exits 2) 1) my_getgrgid( char *group, uid_t uid, int bufsize) if bufsize is > 0 char *group cannot be set to NULL on success groupname is written on static allocated buffer on failure gid as string is written to buffer and NULL is returned if bufsize is = 0 char *group can be set to NULL on success groupname is returned on failure NULL is returned if bufsize is < 0 char *group can be set to nULL on success groupname is returned on failure an error message is printed and the program exits This changes were needed mainly for my new id applet. It is somewhat bigger then the previous but matches the behaviour of GNU id and is capable to handle usernames of whatever length. BTW: at a first look it seems to me that it will integrate well (with just a few changes) with the pending patch in patches/id_groups_alias.patch. The increase in size is balanced by the removal of my_getpwnamegid.c from libbb as this was used only in previous id applet and by size optimizations made possible in whoami.c and in passwd.c. I know that we are in feature freeze but I think that i've tested it enough (at least I hope so.......).
2004-08-26Tito writes:Eric Andersen
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
2004-08-26Felipe Kellermann writes:Eric Andersen
Unfortunatelly I've not followed the last two or three weeks commits (new semester started and so now I rarely have time to fix my personal bridge) but tonight I synched my tree and immediately noticed a rather nasty bug! [Using libbb/interface.c:1.24] # grep eth0 /proc/net/dev | xargs eth0:311708397 237346 1670 0 1789 1670 0 0 22580308 120297 0 0 0 102 0 0 # ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:20:AF:7C:EA:B7 inet addr:10.0.0.1 Bcast:10.0.0.127 Mask:255.255.255.128 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) Interrupt:5 Base address:0x320 All values `ifconfig' is showing are `zeroed' -- I quickly looked at the last commits I missed and noticed that there were a commit relating to ifconfig, libbb/interface.c:1.23->1.24 (PatchSet 4338). I've reversed the patch and now everything is working again. I compared the get_name's return values from the 1.23 and 1.24 and quickly noticed that the new revision is leaving `p' right on the sep while the rev 1.23 was leaving it right on the starting of the values... 1-line, 1/3-minute patch attached :-)
2004-08-16Use __kernel_old_dev_t for 2.6.x kernelsEric Andersen
2004-08-16Aurelien Jacobs writes:Eric Andersen
with a quick conversion you will see that 132608 == 0x20600 so noticed that the elif will never be matched ! Apparently there was already a try to modify this in CVS which was reverted (it was plain wrong). I don't know when __kernel_old_dev_t is needed, but with a 2.6.7 or a 2.6.8 this is __kernel_dev_t wich is needed. I corrected this with the following patch but maybe older 2.6 still need __kernel_old_dev_t ? I think this should be corrected before 1.0. Thanks Aurel
2004-08-12Patch from solar to fix problems with get_name()Eric Andersen
2004-08-11Patch from Tito to fix memory leak upon error.Glenn L McGrath
2004-08-03Tito, farmatito at tiscali dot it writes:Eric Andersen
Hi to all, This patch is useful for: 1) remove an unused var from extern char *find_real_root_device_name(const char* name) changing it to extern char *find_real_root_device_name(void). 2) fixes include/libbb.h, coreutils/df.c, util-linux/mount.c and util-linux/umount.c accordingly. 3) fixes a bug, really a false positive, in find_real_root_device_name() that happens if in the /dev directory exists a link named root (/dev/root) that should be skipped but is not. This affects applets like df that display wrong results
2004-07-29Clean up hex escape support.Manuel Novoa III
2004-07-27Felipe Kellermann noticed a missing `break'.Eric Andersen