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();
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;
}