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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.