offset = container_cgroup + len - 5;
do {
- int ret = snprintf(offset, 5, "-%d", idx);
- if (ret < 0 || (size_t)ret >= 5)
- return false;
+ if (idx) {
+ int ret = snprintf(offset, 5, "-%d", idx);
+ if (ret < 0 || (size_t)ret >= 5)
+ return false;
+ }
for (i = 0; ops->hierarchies[i]; i++) {
if (!container_create_path_for_hierarchy(ops->hierarchies[i],
break;
}
}
-
- ops->container_cgroup = container_cgroup;
- container_cgroup = NULL;
- INFO("The container uses \"%s\" as cgroup", ops->container_cgroup);
} while (ops->hierarchies[i] && idx > 0 && idx < 1000);
if (idx == 1000)
return false;
- INFO("The container process uses \"%s\" as cgroup", ops->container_cgroup);
+ INFO("The container process uses \"%s\" as cgroup", container_cgroup);
+ ops->container_cgroup = steal_ptr(container_cgroup);
return true;
}
/* Maximum number of bytes sendfile() is able to send in one go. */
#define LXC_SENDFILE_MAX 0x7ffff000
+#define steal_ptr(ptr) \
+ ({ \
+ typeof(ptr) _ptr_ = (ptr); \
+ (ptr) = NULL; \
+ _ptr_; \
+ })
+
#endif /* __LXC_MACRO_H */