File apply-ACL-for-nvidia-device-nodes.patch of Package systemd

From: Ludwig Nussel <ludwig.nussel@suse.de>
Date: Mon, 8 Apr 2013 14:51:47 +0200
Subject: apply ACL for nvidia device nodes

set ACL on nvidia devices (bnc#808319).
---
 src/login/logind-acl.c | 3 +++
 1 file changed, 3 insertions(+)

--- systemd-206.orig/src/login/logind-acl.c
+++ systemd-206/src/login/logind-acl.c
@@ -24,6 +24,7 @@
 #include <acl/libacl.h>
 #include <errno.h>
 #include <string.h>
+#include <strv.h>
 
 #include "logind-acl.h"
 #include "util.h"
@@ -287,6 +288,22 @@ int devnode_acl_all(struct udev *udev,
                 r = devnode_acl(n, flush, del, old_uid, add, new_uid);
         }
 
+        /* only search for nvidia* if /dev/nvidiactl exists */
+	if (!devnode_acl("/dev/nvidiactl", flush, del, old_uid, add, new_uid)) {
+                char** directory;
+                char **f, *resolved;
+
+                if (get_files_in_directory ("/dev", &directory)) {
+                        STRV_FOREACH(f,directory)
+                                if (startswith(*f,"nvidia")) {
+                                        resolved = strjoin("/dev/", *f, NULL);
+	                                devnode_acl(resolved, flush, del, old_uid, add, new_uid);
+                                        free(resolved);
+                                }
+                }
+                strv_free(directory);
+        }
+
 finish:
         udev_enumerate_unref(e);
         set_free_free(nodes);
openSUSE Build Service is sponsored by