mirror of
https://github.com/kdave/btrfs-progs
synced 2025-01-29 00:42:45 +00:00
btrfs-progs: fix fd leak in cmd_subvol_set_default
Rearrange cmd_subvol_set_default() slightly so we don't have to close the fd on an error return. While we're at it, fix whitespace & remove magic return values. Signed-off-by: Eric Sandeen <sandeen@redhat.com>
This commit is contained in:
parent
917609b8d6
commit
fb631862c9
@ -712,24 +712,25 @@ static int cmd_subvol_set_default(int argc, char **argv)
|
||||
subvolid = argv[1];
|
||||
path = argv[2];
|
||||
|
||||
objectid = (unsigned long long)strtoll(subvolid, NULL, 0);
|
||||
if (errno == ERANGE) {
|
||||
fprintf(stderr, "ERROR: invalid tree id (%s)\n", subvolid);
|
||||
return 1;
|
||||
}
|
||||
|
||||
fd = open_file_or_dir(path);
|
||||
if (fd < 0) {
|
||||
fprintf(stderr, "ERROR: can't access to '%s'\n", path);
|
||||
return 12;
|
||||
return 1;
|
||||
}
|
||||
|
||||
objectid = (unsigned long long)strtoll(subvolid, NULL, 0);
|
||||
if (errno == ERANGE) {
|
||||
fprintf(stderr, "ERROR: invalid tree id (%s)\n",subvolid);
|
||||
return 30;
|
||||
}
|
||||
ret = ioctl(fd, BTRFS_IOC_DEFAULT_SUBVOL, &objectid);
|
||||
e = errno;
|
||||
close(fd);
|
||||
if( ret < 0 ){
|
||||
if (ret < 0) {
|
||||
fprintf(stderr, "ERROR: unable to set a new default subvolume - %s\n",
|
||||
strerror(e));
|
||||
return 30;
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user