All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH, UDEV] fix permission inconsistency in relation to symlinks.
@ 2005-02-05 13:26 Michael Buesch
  2005-02-05 14:29 ` [PATCH, UDEV] fix permission inconsistency in relation to Kay Sievers
                   ` (7 more replies)
  0 siblings, 8 replies; 9+ messages in thread
From: Michael Buesch @ 2005-02-05 13:26 UTC (permalink / raw)
  To: linux-hotplug


[-- Attachment #1.1: Type: text/plain, Size: 1906 bytes --]

Hi,

This fixes a rules.d permission apply inconsistency.
Here's an example of what happens without the patch:


First case without the patch:

KERNEL="hd*", GROUP="disk", MODE="0660"
KERNEL="hdc", SYMLINK="cdrecorder", MODE="0666"

mb@lfs:~$ ls -la /dev/hdc 
brw-rw----  1 root disk 22, 0 Feb  5 14:08 /dev/hdc



Second case without the patch:

KERNEL="hd*", GROUP="disk", MODE="0660"
KERNEL="hdc", MODE="0666"

mb@lfs:~$ ls -la /dev/hdc 
brw-rw-rw-  1 root disk 22, 0 Feb  5 14:08 /dev/hdc



With the patch applied:

KERNEL="hd*", GROUP="disk", MODE="0660"
KERNEL="hdc", SYMLINK="cdrecorder", MODE="0666"

mb@lfs:~$ ls -la /dev/hdc 
brw-rw-rw-  1 root disk 22, 0 Feb  5 14:08 /dev/hdc


-- 
Regards Michael Buesch  [ http://www.tuxsoft.de.vu ]


===== namedev.c 1.173 vs edited =====
--- 1.173/namedev.c	2004-12-21 17:41:02 +01:00
+++ edited/namedev.c	2005-02-05 14:04:44 +01:00
@@ -716,14 +716,16 @@
 	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') {
+
+			if (dev->name[0] == '\0' && dev->symlink[0] == '\0' &&
+			    dev->mode == 0000 && dev->owner[0] == '\0' && dev->group[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;
-				}
+				info("configured rule in '%s[%i]' applied, '%s' is ignored",
+				     dev->config_file, dev->config_line, udev->kernel_name);
+				return -1;
+			}
 
+			if (dev->name[0] == '\0') {
 				/* apply permissions only rule values */
 				if (dev->mode != 0000) {
 					udev->mode = dev->mode;

[-- Attachment #1.2: udev_fix_symlink_and_perms.diff --]
[-- Type: text/x-diff, Size: 1117 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 14:04:44 +01:00
@@ -716,14 +716,16 @@
 	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') {
+
+			if (dev->name[0] == '\0' && dev->symlink[0] == '\0' &&
+			    dev->mode == 0000 && dev->owner[0] == '\0' && dev->group[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;
-				}
+				info("configured rule in '%s[%i]' applied, '%s' is ignored",
+				     dev->config_file, dev->config_line, udev->kernel_name);
+				return -1;
+			}
 
+			if (dev->name[0] == '\0') {
 				/* apply permissions only rule values */
 				if (dev->mode != 0000) {
 					udev->mode = dev->mode;

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2005-02-05 15:30 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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 ` [PATCH, UDEV] fix permission inconsistency in relation to Kay Sievers
2005-02-05 15:09 ` [PATCH, UDEV] fix permission inconsistency in relation to symlinks 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

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.