Date: Tue, 10 Oct 2006 15:24:14 +0200 From: "Alex Unleashed" <unledev@gmail.com> To: freebsd-hackers@freebsd.org Subject: mkdir -m option POSIX compliance Message-ID: <5e4707340610100624j38ce9f8du7741bd027eb8cb1b@mail.gmail.com>
next in thread | raw e-mail | index | archive | help
------=_Part_3114_11217464.1160486654346 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline Hi all, "mkdir -m mode -p /some/directory" calls chmod() on /some/directory even if it already exists, effectively changing the mode. POSIX specifies that this mode may only be applied to newly created directories. Patch attached. Please look at the URLs referenced in the patch for further information. Thanks, Alex ------=_Part_3114_11217464.1160486654346 Content-Type: text/x-patch; name=mkdir-posixize-mode-option.patch; charset=ANSI_X3.4-1968 Content-Transfer-Encoding: base64 X-Attachment-Id: f_et4bluig Content-Disposition: attachment; filename="mkdir-posixize-mode-option.patch" LS0tIGJpbi9ta2Rpci9ta2Rpci5jCTIwMDYtMTAtMTAgMTM6NTg6NTMuMDAwMDAwMDAwICswMjAw CisrKyBiaW4vbWtkaXIvbWtkaXIuYwkyMDA2LTEwLTEwIDE1OjA5OjMyLjAwMDAwMDAwMCArMDIw MApAQCAtNjEsMTIgKzYxLDEyIEBACiBpbnQKIG1haW4oaW50IGFyZ2MsIGNoYXIgKmFyZ3ZbXSkK IHsKLQlpbnQgY2gsIGV4aXR2YWwsIHN1Y2Nlc3MsIHBmbGFnOworCWludCBjaCwgZXhpdHZhbCwg c3VjY2VzcywgcGZsYWcsIG9sZGRpcmZsYWc7CiAJbW9kZV90IG9tb2RlOwogCXZvaWQgKnNldCA9 IE5VTEw7CiAJY2hhciAqbW9kZTsKIAotCW9tb2RlID0gcGZsYWcgPSAwOworCW9tb2RlID0gcGZs YWcgPSBvbGRkaXJmbGFnID0gMDsKIAltb2RlID0gTlVMTDsKIAl3aGlsZSAoKGNoID0gZ2V0b3B0 KGFyZ2MsIGFyZ3YsICJtOnB2IikpICE9IC0xKQogCQlzd2l0Y2goY2gpIHsKQEAgLTEwMSw4ICsx MDEsMTEgQEAKIAlmb3IgKGV4aXR2YWwgPSAwOyAqYXJndiAhPSBOVUxMOyArK2FyZ3YpIHsKIAkJ c3VjY2VzcyA9IDE7CiAJCWlmIChwZmxhZykgewotCQkJaWYgKGJ1aWxkKCphcmd2LCBvbW9kZSkp Ci0JCQkJc3VjY2VzcyA9IDA7CisJCQlpZiAoKHN1Y2Nlc3MgPSBidWlsZCgqYXJndiwgb21vZGUp KSA9PSAyKSB7CisJCQkJLyogdGhlIGRpcmVjdG9yeSBleGlzdGVkICovCisJCQkJb2xkZGlyZmxh ZyA9IDE7CisJCQkJc3VjY2VzcyA9IDE7CisJCQl9CiAJCX0gZWxzZSBpZiAobWtkaXIoKmFyZ3Ys IG9tb2RlKSA8IDApIHsKIAkJCWlmIChlcnJubyA9PSBFTk9URElSIHx8IGVycm5vID09IEVOT0VO VCkKIAkJCQl3YXJuKCIlcyIsIGRpcm5hbWUoKmFyZ3YpKTsKQEAgLTEyMCw4ICsxMjMsMTYgQEAK IAkJICogc3RpY2t5LCBzZXR1aWQsIHNldGdpZCBiaXRzIHlvdSBsb3NlIHRoZW0uICBEb24ndCBk bwogCQkgKiB0aGlzIHVubGVzcyB0aGUgdXNlciBoYXMgc3BlY2lmaWNhbGx5IHJlcXVlc3RlZCBh IG1vZGUsCiAJCSAqIGFzIGNobW9kIHdpbGwgKG9idmlvdXNseSkgaWdub3JlIHRoZSB1bWFzay4K KwkJICoKKwkJICogRG8gdGhpcyBvbmx5IG9uIF9uZXdseS1jcmVhdGVkXyBkaXJlY3Rvcmllcywg bm90IHRob3NlCisJCSAqIGFscmVhZHkgZXhpc3RpbmcuIFNlZSAtbSBvcHRpb24gZm9yIG1rZGly IGluOgorCQkgKgorCQkgKiBodHRwOi8vd3d3Lm9wZW5ncm91cC5vcmcvb25saW5lcHVicy8wMDk2 OTUzOTkvdXRpbGl0aWVzL21rZGlyLmh0bWwKKwkJICoKKwkJICogUmVhZCBodHRwOi8vbGlzdHMu Z251Lm9yZy9hcmNoaXZlL2h0bWwvYnVnLWF1dG9jb25mLzIwMDYtMTAvbXNnMDAwMTIuaHRtbAor CQkgKiBtYWlsaW5nIGxpc3QgdGhyZWFkIGZvciBmdXJ0aGVyIGRldGFpbHMuCiAJCSAqLwotCQlp ZiAoc3VjY2VzcyAmJiBtb2RlICE9IE5VTEwgJiYgY2htb2QoKmFyZ3YsIG9tb2RlKSA9PSAtMSkg eworCQlpZiAoc3VjY2VzcyAmJiBtb2RlICE9IE5VTEwgJiYgIW9sZGRpcmZsYWcgJiYgY2htb2Qo KmFyZ3YsIG9tb2RlKSA9PSAtMSkgewogCQkJd2FybigiJXMiLCAqYXJndik7CiAJCQlleGl0dmFs ID0gMTsKIAkJfQpAQCAtMTI5LDYgKzE0MCwxNyBAQAogCWV4aXQoZXhpdHZhbCk7CiB9CiAKKy8q CisgKiBUaGUgYnVpbGQoKSBmdW5jdGlvbiByZXR1cm5zIDAgd2hlbiBmYWlsZWQsCisgKiAxIG9u IHN1Y2Nlc3MsIGFuZCAyIHdoZW4gdGhlIHRhcmdldCBkaXJlY3RvcnkKKyAqIGRpZCBhbHJlYWR5 IGV4aXN0LgorICoKKyAqIFRoaXMgaXMgYmVjYXVzZSB3ZSBuZWVkIHRvIGRpZmZlcmVudGlhdGUg dGhlCisgKiBjYXNlcyBpbiB3aGljaCB0aGUgZGlyZWN0b3J5IGhhcyBiZWVuIGNyZWF0ZWQKKyAq IGZyb20gdGhvc2UgaW4gd2hpY2ggaXQgaGFzbid0IHRvIHByb3ZpZGUKKyAqIFBPU0lYIGNvbXBs aWFuY2Ugd2hlbiBzcGVjaWZ5aW5nIGEgbW9kZS4KKyAqLworCiBpbnQKIGJ1aWxkKGNoYXIgKnBh dGgsIG1vZGVfdCBvbW9kZSkKIHsKQEAgLTEzOSw3ICsxNjEsNyBAQAogCiAJcCA9IHBhdGg7CiAJ b3VtYXNrID0gMDsKLQlyZXR2YWwgPSAwOworCXJldHZhbCA9IDE7CiAJaWYgKHBbMF0gPT0gJy8n KQkJLyogU2tpcCBsZWFkaW5nICcvJy4gKi8KIAkJKytwOwogCWZvciAoZmlyc3QgPSAxLCBsYXN0 ID0gMDsgIWxhc3QgOyArK3ApIHsKQEAgLTE3NCw3ICsxOTYsNyBAQAogCQkJaWYgKGVycm5vID09 IEVFWElTVCB8fCBlcnJubyA9PSBFSVNESVIpIHsKIAkJCQlpZiAoc3RhdChwYXRoLCAmc2IpIDwg MCkgewogCQkJCQl3YXJuKCIlcyIsIHBhdGgpOwotCQkJCQlyZXR2YWwgPSAxOworCQkJCQlyZXR2 YWwgPSAwOwogCQkJCQlicmVhazsKIAkJCQl9IGVsc2UgaWYgKCFTX0lTRElSKHNiLnN0X21vZGUp KSB7CiAJCQkJCWlmIChsYXN0KQpAQCAtMTgyLDEyICsyMDQsMTUgQEAKIAkJCQkJZWxzZQogCQkJ CQkJZXJybm8gPSBFTk9URElSOwogCQkJCQl3YXJuKCIlcyIsIHBhdGgpOwotCQkJCQlyZXR2YWwg PSAxOworCQkJCQlyZXR2YWwgPSAwOwogCQkJCQlicmVhazsKIAkJCQl9CisJCQkJLyogSXQncyBh IGRpcmVjdG9yeSwgYW5kIHdlIGRpZG4ndCBjcmVhdGUgaXQgKi8KKwkJCQlpZiAobGFzdCkKKwkJ CQkJcmV0dmFsID0gMjsKIAkJCX0gZWxzZSB7CiAJCQkJd2FybigiJXMiLCBwYXRoKTsKLQkJCQly ZXR2YWwgPSAxOworCQkJCXJldHZhbCA9IDA7CiAJCQkJYnJlYWs7CiAJCQl9CiAJCX0gZWxzZSBp ZiAodmZsYWcpCg== ------=_Part_3114_11217464.1160486654346--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5e4707340610100624j38ce9f8du7741bd027eb8cb1b>