summaryrefslogtreecommitdiffstats
path: root/abs/core/udev/static-nodes-permissions.patch
diff options
context:
space:
mode:
authorCecil <knoppmyth@gmail.com>2011-07-07 13:47:21 (GMT)
committerCecil <knoppmyth@gmail.com>2011-07-07 13:47:21 (GMT)
commitad32a43286913fd709415a7732de2ae0df2b4667 (patch)
tree25851f6ca02e6e3b8f70af534847172dce494047 /abs/core/udev/static-nodes-permissions.patch
parent8f25d1b04c215fb658962b9b851e34504f1cd758 (diff)
downloadlinhes_pkgbuild-ad32a43286913fd709415a7732de2ae0df2b4667.zip
linhes_pkgbuild-ad32a43286913fd709415a7732de2ae0df2b4667.tar.gz
linhes_pkgbuild-ad32a43286913fd709415a7732de2ae0df2b4667.tar.bz2
udev:Bumped to latest.
Diffstat (limited to 'abs/core/udev/static-nodes-permissions.patch')
-rw-r--r--abs/core/udev/static-nodes-permissions.patch57
1 files changed, 57 insertions, 0 deletions
diff --git a/abs/core/udev/static-nodes-permissions.patch b/abs/core/udev/static-nodes-permissions.patch
new file mode 100644
index 0000000..51e6ad6
--- /dev/null
+++ b/abs/core/udev/static-nodes-permissions.patch
@@ -0,0 +1,57 @@
+From c112873b5bc9ebbae39c32f502bc6211f33546cc Mon Sep 17 00:00:00 2001
+From: Kay Sievers <kay.sievers@vrfy.org>
+Date: Mon, 30 May 2011 02:12:02 +0200
+Subject: [PATCH 1/2] rules: static_node - use 0660 if group is given to get
+ the cigar
+
+>> On Tue, May 24, 2011 at 15:33, Tom Gundersen <teg@jklm.no> wrote:
+>
+> Close, but no cigar. Looks like the static nodes are not assigned
+> permissions 0660 even if a gid is set (the nodes have perms 0600).
+>
+> Cheers,
+>
+> Tom
+---
+ udev/udev-rules.c | 10 ++++++++--
+ 1 files changed, 8 insertions(+), 2 deletions(-)
+
+diff --git a/udev/udev-rules.c b/udev/udev-rules.c
+index 48395e7..56a258d 100644
+--- a/udev/udev-rules.c
++++ b/udev/udev-rules.c
+@@ -2709,8 +2709,9 @@ void udev_rules_apply_static_dev_perms(struct udev_rules *rules)
+ case TK_A_STATIC_NODE: {
+ char filename[UTIL_PATH_SIZE];
+ struct stat stats;
++
+ /* we assure, that the permissions tokens are sorted before the static token */
+- if (mode == 0 && uid == 0 && gid == 0)
++ if (uid == 0 && gid == 0)
+ goto next;
+ util_strscpyl(filename, sizeof(filename), udev_get_dev_path(rules->udev), "/",
+ &rules->buf[cur->key.value_off], NULL);
+@@ -2718,14 +2719,19 @@ void udev_rules_apply_static_dev_perms(struct udev_rules *rules)
+ goto next;
+ if (!S_ISBLK(stats.st_mode) && !S_ISCHR(stats.st_mode))
+ goto next;
+- if (mode != 0 && mode != (stats.st_mode & 0777)) {
++
++ if (mode == 0 && gid > 0)
++ mode = 0660;
++ if (mode != (stats.st_mode & 0777)) {
+ chmod(filename, mode);
+ info(rules->udev, "chmod '%s' %#o\n", filename, mode);
+ }
++
+ if ((uid != 0 && uid != stats.st_uid) || (gid != 0 && gid != stats.st_gid)) {
+ chown(filename, uid, gid);
+ info(rules->udev, "chown '%s' %u %u\n", filename, uid, gid);
+ }
++
+ utimensat(AT_FDCWD, filename, NULL, 0);
+ break;
+ }
+--
+1.7.5.2
+