Skip to content

Commit

Permalink
storage_utils: add error handling
Browse files Browse the repository at this point in the history
Signed-off-by: 2xsec <dh48.jeong@samsung.com>
  • Loading branch information
2xsec authored and Christian Brauner committed Nov 22, 2018
1 parent b76767e commit e2f9a4e
Showing 1 changed file with 24 additions and 9 deletions.
33 changes: 24 additions & 9 deletions src/lxc/storage/storage_utils.c
Expand Up @@ -153,12 +153,18 @@ int blk_getsize(struct lxc_storage *bdev, uint64_t *size)
const char *src;

src = lxc_storage_get_path(bdev->src, bdev->type);
fd = open(src, O_RDONLY);
if (fd < 0)

fd = open(src, O_RDONLY | O_CLOEXEC);
if (fd < 0) {
SYSERROR("Failed to open \"%s\"", src);
return -1;
}

/* size of device in bytes */
ret = ioctl(fd, BLKGETSIZE64, size);
if (ret < 0)
SYSERROR("Failed to get block size of dev-src");

close(fd);
return ret;
}
Expand Down Expand Up @@ -195,11 +201,16 @@ int detect_fs(struct lxc_storage *bdev, char *type, int len)
srcdev = lxc_storage_get_path(bdev->src, bdev->type);

ret = pipe(p);
if (ret < 0)
if (ret < 0) {
SYSERROR("Failed to create pipe");
return -1;
}

if ((pid = fork()) < 0)
pid = fork();
if (pid < 0) {
SYSERROR("Failed to fork process");
return -1;
}

if (pid > 0) {
int status;
Expand Down Expand Up @@ -409,8 +420,10 @@ const char *linkderef(const char *path, char *dest)
ssize_t ret;

ret = stat(path, &sbuf);
if (ret < 0)
if (ret < 0) {
SYSERROR("Failed to get status of file - \"%s\"", path);
return NULL;
}

if (!S_ISLNK(sbuf.st_mode))
return path;
Expand Down Expand Up @@ -517,20 +530,22 @@ int storage_destroy_wrapper(void *data)
struct lxc_conf *conf = data;

if (setgid(0) < 0) {
ERROR("Failed to setgid to 0");
SYSERROR("Failed to setgid to 0");
return -1;
}

if (setgroups(0, NULL) < 0)
WARN("Failed to clear groups");
SYSWARN("Failed to clear groups");

if (setuid(0) < 0) {
ERROR("Failed to setuid to 0");
SYSERROR("Failed to setuid to 0");
return -1;
}

if (!storage_destroy(conf))
if (!storage_destroy(conf)) {
ERROR("Failed to destroy storage");
return -1;
}

return 0;
}

0 comments on commit e2f9a4e

Please sign in to comment.