bug#81413: [PATCH] install: skip chown/chmod when -C finds nothing to change
Pádraig Brady <[email protected]> Thu, 16 Jul 2026 12:31:49 +0100
| Newsgroups | gmane.comp.gnu.core-utils.bugs |
|---|---|
| Message-ID | <[email protected]> |
This is a multi-part message in MIME format. --------------0mMR0ptLZGCiqWklhd3s8S0K Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit On 15/07/2026 22:56, Mateusz Nosek wrote: > Hi Pádraig, > > Good point, thanks. v2 leaves setdefaultfilecon() inside > change_attributes(). Updated patch attached. > > I began to wonder if need_copy() should also do a more rigorous check > for the "selinux_enabled && use_default_selinux_context" case, to see > if the destination already has the default context. But that's > slightly out of scope of this patch, so just FYI. > > Thanks, > Mateusz > > On Wed, Jul 15, 2026 at 1:18 PM Pádraig Brady <[email protected]> wrote: >> >> On 14/07/2026 23:30, Mateusz Nosek wrote: >>> Hi, >>> >>> I attach a patch for the "install" utility: "install -C" was still >>> calling chown/chmod on the destination even when need_copy() had >>> already determined it matches (mode, owner, group, content), which >>> could needlessly fail, e.g. on an immutable file. >>> >>> This is my first patch to coreutils, so apologies for any mistakes in >>> the submission process -- happy to fix anything you point out. >> This makes sense I think. >> >> You moved setdefaultfilecon() out of this consideration. >> I'd be inclined to leave it where it was and treat the same way, >> because the comparison also compares selinux context, >> and also if the file is already present it probably has an appropriate context anyway. I've pushed that with a NEWS entry. I also pushed the attached as a follow up to make cleanup of chattr +i files in tests more robust. Marking this as done. thanks! Padraig --------------0mMR0ptLZGCiqWklhd3s8S0K Content-Type: text/x-patch; charset=UTF-8; name="immutable-cleanup.patch" Content-Disposition: attachment; filename="immutable-cleanup.patch" Content-Transfer-Encoding: base64 RnJvbSBkYmVkMTY5ODM1MGJhMWVjMDY1MDVlMzVmMzcyNjVmOWYwYzY5ZGMwIE1vbiBTZXAg MTcgMDA6MDA6MDAgMjAwMQpGcm9tOiA9P1VURi04P3E/UD1DMz1BMWRyYWlnPTIwQnJhZHk/ PSA8UEBkcmFpZ0JyYWR5LmNvbT4KRGF0ZTogVGh1LCAxNiBKdWwgMjAyNiAxMjoxNDo1OSAr MDEwMApTdWJqZWN0OiBbUEFUQ0hdIHRlc3RzOiB1c2UgbW9yZSByb2J1c3QgY2xlYW51cCBv ZiBpbW11dGFibGUgZmlsZXMKCiogdGVzdHMvcm0vZW1wdHktaW1tdXRhYmxlLXNraXAuc2g6 IFVzZSBjbGVhbnVwXygpIHRvCnJlbW92ZSB0aGUgaW1tdXRhYmxlIGF0dHJpYnV0ZSwgc28g dGhhdCBmYWxzZSBmYWlsdXJlcwpvciBzdGFsZSBmaWxlcyBkbyBub3QgcmVzdWx0IGZyb20g ZS5nLiBhIGtpbGxlZCB0ZXN0IHJ1bi4KLS0tCiB0ZXN0cy9pbnN0YWxsL2luc3RhbGwtQy1p bW11dGFibGUuc2ggfCA0ICsrLS0KIHRlc3RzL3JtL2VtcHR5LWltbXV0YWJsZS1za2lwLnNo ICAgICB8IDMgKystCiAyIGZpbGVzIGNoYW5nZWQsIDQgaW5zZXJ0aW9ucygrKSwgMyBkZWxl dGlvbnMoLSkKCmRpZmYgLS1naXQgYS90ZXN0cy9pbnN0YWxsL2luc3RhbGwtQy1pbW11dGFi bGUuc2ggYi90ZXN0cy9pbnN0YWxsL2luc3RhbGwtQy1pbW11dGFibGUuc2gKaW5kZXggM2Iw Y2JmNGQyLi4wYmRiOTc5OTcgMTAwNzU1Ci0tLSBhL3Rlc3RzL2luc3RhbGwvaW5zdGFsbC1D LWltbXV0YWJsZS5zaAorKysgYi90ZXN0cy9pbnN0YWxsL2luc3RhbGwtQy1pbW11dGFibGUu c2gKQEAgLTQzLDYgKzQzLDggQEAgZzE9MQogCiBlY2hvIHRlc3QgPiBhIHx8IGZyYW1ld29y a19mYWlsdXJlXwogCitjbGVhbnVwXygpIHsgY2hhdHRyIC1pIGI7IH0KKwogIyBJbnN0YWxs IG9uY2UgdG8gY3JlYXRlIHRoZSBkZXN0aW5hdGlvbiwgdGhlbiBtYWtlIGl0IGltbXV0YWJs ZS4KIGdpbnN0YWxsIC1DdiAtbTA2NDQgLW8kdTEgLWckZzEgYSBiIHx8IGZyYW1ld29ya19m YWlsdXJlXwogY2hhdHRyICtpIGIgfHwgZnJhbWV3b3JrX2ZhaWx1cmVfCkBAIC01Myw2ICs1 NSw0IEBAIGNoYXR0ciAraSBiIHx8IGZyYW1ld29ya19mYWlsdXJlXwogIyBpdCB3b3VsZCBh Y3R1YWxseSBjaGFuZ2UuCiBnaW5zdGFsbCAtQ3YgLW0wNjQ0IC1vJHUxIC1nJGcxIGEgYiB8 fCBmYWlsPTEKIAotY2hhdHRyIC1pIGIKLQogRXhpdCAkZmFpbApkaWZmIC0tZ2l0IGEvdGVz dHMvcm0vZW1wdHktaW1tdXRhYmxlLXNraXAuc2ggYi90ZXN0cy9ybS9lbXB0eS1pbW11dGFi bGUtc2tpcC5zaAppbmRleCA1YjhlYTY2MDYuLmE3MGQ2MTk2NyAxMDA3NTUKLS0tIGEvdGVz dHMvcm0vZW1wdHktaW1tdXRhYmxlLXNraXAuc2gKKysrIGIvdGVzdHMvcm0vZW1wdHktaW1t dXRhYmxlLXNraXAuc2gKQEAgLTM2LDExICszNiwxMiBAQCBpZiB0ZXN0ICRjaGF0dHJfaV93 b3JrcyA9IDA7IHRoZW4KICAgc2tpcF8gImNoYXR0ciAraSBkb2Vzbid0IHdvcmsgb24gdGhp cyBmaWxlIHN5c3RlbSIKIGZpCiAKK2NsZWFudXBfKCkgeyBjaGF0dHIgLWkgZW1wdHk7IH0K KwogbWtkaXIgZW1wdHkgfHwgZnJhbWV3b3JrX2ZhaWx1cmVfCiB0b3VjaCB4IHkgfHwgZnJh bWV3b3JrX2ZhaWx1cmVfCiBjaGF0dHIgK2kgZW1wdHkgfHwgZnJhbWV3b3JrX2ZhaWx1cmVf CiBybSAtcmYgZW1wdHkgeCB5CiB7IHRlc3QgLWYgeCB8fCB0ZXN0IC1mIHk7IH0gJiYgZmFp bD0xCi1jaGF0dHIgLWkgZW1wdHkKIAogRXhpdCAkZmFpbAotLSAKMi41NS4wCgo= --------------0mMR0ptLZGCiqWklhd3s8S0K--