errno = 0;
val = strtol(str, &endptr, 10);
if (errno) {
- lxc_error(args, "invalid statefd '%s' : %m", str);
+ lxc_error(args, "invalid statefd '%s' : %s", str,
+ strerror(errno));
return -1;
}
caps = cap_get_proc();
if (!caps) {
- ERROR("failed to cap_get_proc: %m");
+ ERROR("failed to cap_get_proc: %s", strerror(errno));
return -1;
}
ret = cap_clear_flag(caps, CAP_EFFECTIVE);
if (ret) {
- ERROR("failed to cap_clear_flag: %m");
+ ERROR("failed to cap_clear_flag: %s", strerror(errno));
goto out;
}
ret = cap_set_proc(caps);
if (ret) {
- ERROR("failed to cap_set_proc: %m");
+ ERROR("failed to cap_set_proc: %s", strerror(errno));
goto out;
}
caps = cap_get_proc();
if (!caps) {
- ERROR("failed to cap_get_proc: %m");
+ ERROR("failed to cap_get_proc: %s", strerror(errno));
return -1;
}
INFO("Last supported cap was %d", cap-1);
break;
} else {
- ERROR("failed to cap_get_flag: %m");
+ ERROR("failed to cap_get_flag: %s",
+ strerror(errno));
goto out;
}
}
ret = cap_set_flag(caps, CAP_EFFECTIVE, 1, &cap, flag);
if (ret) {
- ERROR("failed to cap_set_flag: %m");
+ ERROR("failed to cap_set_flag: %s", strerror(errno));
goto out;
}
}
ret = cap_set_proc(caps);
if (ret) {
- ERROR("failed to cap_set_proc: %m");
+ ERROR("failed to cap_set_proc: %s", strerror(errno));
goto out;
}
INFO("command is run as setuid root (uid : %d)", uid);
if (prctl(PR_SET_KEEPCAPS, 1)) {
- ERROR("failed to 'PR_SET_KEEPCAPS': %m");
+ ERROR("failed to 'PR_SET_KEEPCAPS': %s",
+ strerror(errno));
return -1;
}
if (setresgid(gid, gid, gid)) {
- ERROR("failed to change gid to '%d': %m", gid);
+ ERROR("failed to change gid to '%d': %s", gid,
+ strerror(errno));
return -1;
}
if (setresuid(uid, uid, uid)) {
- ERROR("failed to change uid to '%d': %m", uid);
+ ERROR("failed to change uid to '%d': %s", uid,
+ strerror(errno));
return -1;
}
if (lxc_caps_up()) {
- ERROR("failed to restore capabilities: %m");
+ ERROR("failed to restore capabilities: %s",
+ strerror(errno));
return -1;
}
}
if (rmdir(dirname) < 0) {
if (!r)
- WARN("%s: failed to delete %s: %m", __func__, dirname);
+ WARN("failed to delete %s: %s", dirname, strerror(errno));
r = -1;
}
if (closedir(dir) < 0) {
if (!r)
- WARN("%s: failed to delete %s: %m", __func__, dirname);
+ WARN("failed to delete %s: %s", dirname, strerror(errno));
r = -1;
}
return r;
*/
fullpath = must_make_path(path, "tasks", NULL);
if (chown(fullpath, destuid, 0) < 0 && errno != ENOENT)
- WARN("Failed chowning %s to %d: %m", fullpath, (int) destuid);
+ WARN("Failed chowning %s to %d: %s", fullpath, (int) destuid,
+ strerror(errno));
if (chmod(fullpath, 0664) < 0)
- WARN("Error chmoding %s: %m", path);
+ WARN("Error chmoding %s: %s", path, strerror(errno));
free(fullpath);
fullpath = must_make_path(path, "cgroup.procs", NULL);
if (chown(fullpath, destuid, 0) < 0 && errno != ENOENT)
- WARN("Failed chowning %s to %d: %m", fullpath, (int) destuid);
+ WARN("Failed chowning %s to %d: %s", fullpath, (int) destuid,
+ strerror(errno));
if (chmod(fullpath, 0664) < 0)
- WARN("Error chmoding %s: %m", path);
+ WARN("Error chmoding %s: %s", path, strerror(errno));
free(fullpath);
}
char *source = must_make_path(h->mountpoint, h->base_cgroup, container_cgroup, NULL);
char *rwpath = must_make_path(dest, h->base_cgroup, container_cgroup, NULL);
if (mount(source, rwpath, "cgroup", MS_BIND, NULL) < 0)
- WARN("Failed to mount %s read-write: %m", rwpath);
+ WARN("Failed to mount %s read-write: %s", rwpath,
+ strerror(errno));
INFO("Made %s read-write", rwpath);
free(rwpath);
free(source);
struct lxc_conf *new;
int i;
- new = malloc(sizeof(*new));
+ new = malloc(sizeof(*new));
if (!new) {
- ERROR("lxc_conf_init : %m");
+ ERROR("lxc_conf_init : %s", strerror(errno));
return NULL;
}
memset(new, 0, sizeof(*new));
new->nbd_idx = -1;
new->rootfs.mount = strdup(default_rootfs_mount);
if (!new->rootfs.mount) {
- ERROR("lxc_conf_init : %m");
+ ERROR("lxc_conf_init : %s", strerror(errno));
free(new);
return NULL;
}
restart:
dir = opendir("/proc/self/fd");
if (!dir) {
- WARN("Failed to open directory: %m.");
+ WARN("Failed to open directory: %s.", strerror(errno));
return -1;
}
return -1;
}
if (wait(&status) < 0) {
- SYSERROR("Unexpected wait error: %m.");
+ SYSERROR("Unexpected wait error: %s.", strerror(errno));
return -1;
}
ret = read(fd, &sync, sizeof(sync));
if (ret < 0) {
- ERROR("sync wait failure : %m");
+ ERROR("sync wait failure : %s", strerror(errno));
return -1;
}
int sync = sequence;
if (write(fd, &sync, sizeof(sync)) < 0) {
- ERROR("sync wake failure : %m");
+ ERROR("sync wake failure : %s", strerror(errno));
return -1;
}
return 0;
NOTICE("about to exec '%s'", aargv[0]);
execvp(aargv[0], aargv);
- ERROR("failed to exec: '%s' : %m", aargv[0]);
+ ERROR("failed to exec: '%s' : %s", aargv[0], strerror(errno));
exit(err);
}
#include <sched.h>
#include <unistd.h>
#include <signal.h>
+#include <errno.h>
+#include <string.h>
#include <sys/reboot.h>
#include <sys/types.h>
#include <sys/wait.h>
int *cmd = arg;
if (reboot(*cmd))
- printf("failed to reboot(%d): %m\n", *cmd);
+ printf("failed to reboot(%d): %s\n", *cmd, strerror(errno));
return 0;
}
ret = clone(do_reboot, stack, CLONE_NEWPID | SIGCHLD, &cmd);
if (ret < 0) {
- printf("failed to clone: %m\n");
+ printf("failed to clone: %s\n", strerror(errno));
return -1;
}
if (wait(&status) < 0) {
- printf("unexpected wait error: %m\n");
+ printf("unexpected wait error: %s\n", strerror(errno));
return -1;
}