aboutsummaryrefslogtreecommitdiff
path: root/libbb/make_directory.c
AgeCommit message (Collapse)Author
2010-07-19mkdir: fix -p on FreeBSDJeremie Koenig
This patch is libbb.make_directory.diff from Debian kFreeBSD at: http://svn.debian.org/viewsvn/d-i/people/slackydeb/kfreebsd/busybox/1.14/debian Signed-off-by: Jeremie Koenig <jk@jk.fr.eu.org> Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-11-29tar: fix bug 673 (misdetection of repeated dir as hardlink). +92 bytesDenys Vlasenko
While at it, remove many superfluous ops on unpack: mkdir("."), lots of umask() calls. Can remove more by caching username->uid. Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2009-11-13*: use "can't" instead of "cannot"Denys Vlasenko
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
2008-10-19volume identification: abolish /proc/partitions and /proc/cdromsDenis Vlasenko
scanning. It does not catch volume managers and such. Adding even more cruft is bad, so I decided to simply scan /dev/* for any block devices. See how much better it finds devices now: # ./busybox_old blkid /dev/sda1: LABEL="/boot" UUID="7931e231-dcb4-4b6d-9301-f7354ae24061" /dev/dm-0: LABEL="Fedora-9-Live-x8" UUID="bb491e1e-1145-4f5b-b0ab-cbd2baf4f15a" /dev/dm-1: UUID="edc2a920-ef83-437e-ba64-d3b6dc851267" /dev/sdb1: UUID="6F84-ED0F" # ./busybox blkid /dev/sdb1: UUID="6F84-ED0F" /dev/root: LABEL="Fedora-9-Live-x8" UUID="bb491e1e-1145-4f5b-b0ab-cbd2baf4f15a" /dev/dm-1: UUID="edc2a920-ef83-437e-ba64-d3b6dc851267" /dev/dm-0: LABEL="Fedora-9-Live-x8" UUID="bb491e1e-1145-4f5b-b0ab-cbd2baf4f15a" /dev/sda1: LABEL="/boot" UUID="7931e231-dcb4-4b6d-9301-f7354ae24061" /dev/mapper/VolGroup00-LogVol01: UUID="edc2a920-ef83-437e-ba64-d3b6dc851267" /dev/mapper/VolGroup00-LogVol00: LABEL="Fedora-9-Live-x8" UUID="bb491e1e-1145-4f5b-b0ab-cbd2baf4f15a" function old new delta static.drive_name_string 12 - -12 append_mount_options 205 190 -15 volume_id_open_node 37 18 -19 uuidcache_check_device 485 257 -228 uuidcache_init 637 36 -601 ------------------------------------------------------------------------------ (add/remove: 0/1 grow/shrink: 0/4 up/down: 0/-875) Total: -875 bytes text data bss dec hex filename 792218 592 6648 799458 c32e2 busybox_old 791260 592 6648 798500 c2f24 busybox_unstripped
2008-08-15mkdir: fix "uname 0222; mkdir foo/bar" caseDenis Vlasenko
(by Doug Graham <dgraham AT nortel.com>) function old new delta bb_make_directory 291 280 -11
2008-06-27*: introduce and use FAST_FUNC: regparm on i386, otherwise no-onDenis Vlasenko
text data bss dec hex filename 808035 611 6868 815514 c719a busybox_old 804472 611 6868 811951 c63af busybox_unstripped
2007-08-09stat: fix option -Z segv (bug 1454)Denis Vlasenko
2007-04-10audit small applets and mark some of them as NOFORK.Denis Vlasenko
Put big scary warnings in relevant places.
2006-10-20message string changes, mostly for consistency, also -32 bytes in .rodataDenis Vlasenko
2006-07-10Replace current verbose GPL stuff in libbb/*.c with one-line GPL boilerplate."Robert P. J. Day"
2004-10-13Make certain clients of bb_make_directory default to honoringEric Andersen
the user's umask
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-04-14Larry Doolittle writes:Eric Andersen
This is a bulk spelling fix patch against busybox-1.00-pre10. If anyone gets a corrupted copy (and cares), let me know and I will make alternate arrangements. Erik - please apply. Authors - please check that I didn't corrupt any meaning. Package importers - see if any of these changes should be passed to the upstream authors. I glossed over lots of sloppy capitalizations, missing apostrophes, mixed American/British spellings, and German-style compound words. What is "pretect redefined for test" in cmdedit.c? Good luck on the 1.00 release! - Larry
2003-03-19Major coreutils update.Manuel Novoa III
2002-11-24Dont need a seperate functionGlenn L McGrath
2002-11-24When making parent directories set permissions based on the base parent tree ↵Glenn L McGrath
rather than the new directory to be created.
2002-10-19Dont try and make the "/" directoryGlenn L McGrath
2002-09-28Fail straight away rather than recursively printing error messages :)Glenn L McGrath
2002-09-22Fix error messages conditions, and make them the same as GNU mkdir.Glenn L McGrath
2002-08-24Dont return an error if the directory already existedGlenn L McGrath
2002-08-24Fix warningGlenn L McGrath
2002-08-23Rewrite, its smallerGlenn L McGrath
2001-08-24Canonicalize dirname(3) behavior.Matt Kraai
2001-08-24Fix a memory leak if parent directory creation failed.Matt Kraai
2001-08-02make_directory used mode as if it were an signed entity, but in factEric Andersen
it was a mode_t which is unsigned. Fix it to be signed... -Erik
2001-06-22stdlib.h defined free(), which this needsEric Andersen
2001-06-21Rewrote mkdir (and touched lots of things in the process).Matt Kraai