From: Kay Sievers <kay.sievers@vrfy.org>
To: linux-hotplug@vger.kernel.org
Subject: Re: [PATCH, UDEV] fix permission inconsistency in relation to
Date: Sat, 05 Feb 2005 14:58:29 +0000 [thread overview]
Message-ID: <1107615509.5494.84.camel@localhost.localdomain> (raw)
In-Reply-To: <200502051426.14173.mbuesch@freenet.de>
[-- Attachment #1: Type: text/plain, Size: 627 bytes --]
On Sat, 2005-02-05 at 15:33 +0100, Marco d'Itri wrote:
> On Feb 05, Kay Sievers <kay.sievers@vrfy.org> wrote:
>
> > Should we change that now, so that permissions are applied from a
> > symlink-only rule too?
> Yes!
> I think it's the sensible semantic: the second rule adds a new SYMLINK
> *and* sets the permissions of the node, which are two distinct
> operations applied by the same rule.
Yeah, we should do that now.
> Unless you think it's broken, I will add the patch to the debian package
> of 051 (almost ready).
I think we can make it even simpler, by applying the permission
unconditionally, right?
Thanks,
Kay
[-- Attachment #2: udev-symlink-perms-01.patch --]
[-- Type: text/x-patch, Size: 3636 bytes --]
===== namedev.c 1.173 vs edited =====
--- 1.173/namedev.c 2004-12-21 17:41:02 +01:00
+++ edited/namedev.c 2005-02-05 15:51:06 +01:00
@@ -670,7 +670,6 @@ try_parent:
dbg("sysfs_device->path='%s'", sysfs_device->path);
dbg("sysfs_device->bus_id='%s'", sysfs_device->bus_id);
}
-
}
int namedev_name_device(struct udevice *udev, struct sysfs_class_device *class_dev)
@@ -716,32 +715,32 @@ int namedev_name_device(struct udevice *
list_for_each_entry(dev, &config_device_list, node) {
dbg("process rule");
if (match_rule(udev, dev, class_dev, sysfs_device) == 0) {
- if (dev->name[0] == '\0' && dev->symlink[0] == '\0') {
- /* empty name, symlink, perms will not create any node */
- if (dev->mode == 0000 && dev->owner[0] == '\0' && dev->group[0] == '\0') {
- info("configured rule in '%s[%i]' applied, '%s' is ignored",
- dev->config_file, dev->config_line, udev->kernel_name);
- return -1;
- }
-
- /* apply permissions only rule values */
- if (dev->mode != 0000) {
- udev->mode = dev->mode;
- dbg("applied mode=%#o to '%s'", udev->mode, udev->kernel_name);
- }
- if (dev->owner[0] != '\0') {
- strfieldcpy(udev->owner, dev->owner);
- apply_format(udev, udev->owner, sizeof(udev->owner), class_dev, sysfs_device);
- dbg("applied owner='%s' to '%s'", udev->owner, udev->kernel_name);
- }
- if (dev->group[0] != '\0') {
- strfieldcpy(udev->group, dev->group);
- apply_format(udev, udev->group, sizeof(udev->group), class_dev, sysfs_device);
- dbg("applied group='%s' to '%s'", udev->group, udev->kernel_name);
- }
+
+ /* empty name, symlink, perms will not create any node */
+ if (dev->name[0] == '\0' && dev->symlink[0] == '\0' &&
+ dev->mode == 0000 && dev->owner[0] == '\0' && dev->group[0] == '\0') {
+ info("configured rule in '%s[%i]' applied, '%s' is ignored",
+ dev->config_file, dev->config_line, udev->kernel_name);
+ return -1;
+ }
+
+ /* apply permissions */
+ if (dev->mode != 0000) {
+ udev->mode = dev->mode;
+ dbg("applied mode=%#o to '%s'", udev->mode, udev->kernel_name);
+ }
+ if (dev->owner[0] != '\0') {
+ strfieldcpy(udev->owner, dev->owner);
+ apply_format(udev, udev->owner, sizeof(udev->owner), class_dev, sysfs_device);
+ dbg("applied owner='%s' to '%s'", udev->owner, udev->kernel_name);
+ }
+ if (dev->group[0] != '\0') {
+ strfieldcpy(udev->group, dev->group);
+ apply_format(udev, udev->group, sizeof(udev->group), class_dev, sysfs_device);
+ dbg("applied group='%s' to '%s'", udev->group, udev->kernel_name);
}
- /* collect symlinks for the final matching rule */
+ /* collect symlinks for this or the final matching rule */
if (dev->symlink[0] != '\0') {
char temp[NAME_SIZE];
@@ -774,19 +773,9 @@ int namedev_name_device(struct udevice *
goto exit;
udev->partitions = dev->partitions;
- if (dev->mode != 0000)
- udev->mode = dev->mode;
- if (dev->owner[0] != '\0') {
- strfieldcpy(udev->owner, dev->owner);
- apply_format(udev, udev->owner, sizeof(udev->owner), class_dev, sysfs_device);
- }
- if (dev->group[0] != '\0') {
- strfieldcpy(udev->group, dev->group);
- apply_format(udev, udev->group, sizeof(udev->group), class_dev, sysfs_device);
- }
- dbg("name, '%s' is going to have owner='%s', group='%s', mode = %#o",
- udev->name, udev->owner, udev->group, udev->mode);
+ dbg("name, '%s' is going to have owner='%s', group='%s', mode=%#o partitions=%i",
+ udev->name, udev->owner, udev->group, udev->mode, udev->partitions);
goto exit;
}
next prev parent reply other threads:[~2005-02-05 14:58 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2005-02-05 13:26 [PATCH, UDEV] fix permission inconsistency in relation to symlinks Michael Buesch
2005-02-05 14:29 ` [PATCH, UDEV] fix permission inconsistency in relation to Kay Sievers
2005-02-05 14:33 ` [PATCH, UDEV] fix permission inconsistency in relation to symlinks Marco d'Itri
2005-02-05 14:54 ` Michael Buesch
2005-02-05 14:58 ` Kay Sievers [this message]
2005-02-05 15:09 ` Michael Buesch
2005-02-05 15:20 ` [PATCH, UDEV] fix permission inconsistency in relation to Kay Sievers
2005-02-05 15:25 ` [PATCH, UDEV] fix permission inconsistency in relation to symlinks Michael Buesch
2005-02-05 15:30 ` [PATCH, UDEV] fix permission inconsistency in relation to Kay Sievers
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1107615509.5494.84.camel@localhost.localdomain \
--to=kay.sievers@vrfy.org \
--cc=linux-hotplug@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).