]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
attach: simplify lsm_openat()
authorChristian Brauner <christian.brauner@ubuntu.com>
Thu, 24 Nov 2016 06:58:01 +0000 (07:58 +0100)
committerStéphane Graber <stgraber@ubuntu.com>
Thu, 1 Dec 2016 04:55:32 +0000 (23:55 -0500)
Signed-off-by: Christian Brauner <christian.brauner@ubuntu.com>
src/lxc/attach.c

index 4fc39c61453bc0d4dae57dce040e5cd69954d8ca..285ef4d245bf534c663bc45f518c3915be072338 100644 (file)
 
 lxc_log_define(lxc_attach, lxc);
 
+/* /proc/pid-to-str/current\0 = (5 + 21 + 7 + 1) */
+#define __LSMATTRLEN (5 + 21 + 7 + 1)
 static int lsm_openat(int procfd, pid_t pid, int on_exec)
 {
        int ret = -1;
        int labelfd = -1;
-       const char* name;
-#define __LSMATTRLEN /* /proc */ (5 + /* /pid-to-str */ 21 + /* /current */ 7 + /* \0 */ 1)
+       const char *name;
        char path[__LSMATTRLEN];
 
        name = lsm_name();
@@ -98,20 +99,16 @@ static int lsm_openat(int procfd, pid_t pid, int on_exec)
        if (strcmp(name, "AppArmor") == 0)
                on_exec = 0;
 
-       if (on_exec) {
+       if (on_exec)
                ret = snprintf(path, __LSMATTRLEN, "%d/attr/exec", pid);
-               if (ret < 0 || ret >= __LSMATTRLEN)
-                       return -1;
-               labelfd = openat(procfd, path, O_RDWR);
-       } else {
+       else
                ret = snprintf(path, __LSMATTRLEN, "%d/attr/current", pid);
-               if (ret < 0 || ret >= __LSMATTRLEN)
-                       return -1;
-               labelfd = openat(procfd, path, O_RDWR);
-       }
+       if (ret < 0 || ret >= __LSMATTRLEN)
+               return -1;
 
+       labelfd = openat(procfd, path, O_RDWR);
        if (labelfd < 0) {
-               SYSERROR("Unable to open LSM label");
+               SYSERROR("Unable to open file descriptor to set LSM label.");
                return -1;
        }