diff options
Diffstat (limited to 'cmds-device.c')
-rw-r--r-- | cmds-device.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/cmds-device.c b/cmds-device.c index d4938f4e..198ad689 100644 --- a/cmds-device.c +++ b/cmds-device.c @@ -87,9 +87,8 @@ static int cmd_add_dev(int argc, char **argv) } devfd = open(argv[i], O_RDWR); - if (!devfd) { + if (devfd < 0) { fprintf(stderr, "ERROR: Unable to open device '%s'\n", argv[i]); - close(devfd); ret++; continue; } @@ -117,8 +116,7 @@ static int cmd_add_dev(int argc, char **argv) } close(devfd); - strncpy(ioctl_args.name, argv[i], BTRFS_PATH_NAME_MAX); - ioctl_args.name[BTRFS_PATH_NAME_MAX-1] = 0; + strncpy_null(ioctl_args.name, argv[i]); res = ioctl(fdmnt, BTRFS_IOC_ADD_DEV, &ioctl_args); e = errno; if(res<0){ @@ -162,8 +160,7 @@ static int cmd_rm_dev(int argc, char **argv) struct btrfs_ioctl_vol_args arg; int res; - strncpy(arg.name, argv[i], BTRFS_PATH_NAME_MAX); - arg.name[BTRFS_PATH_NAME_MAX-1] = 0; + strncpy_null(arg.name, argv[i]); res = ioctl(fdmnt, BTRFS_IOC_RM_DEV, &arg); e = errno; if(res<0){ @@ -228,8 +225,7 @@ static int cmd_scan_dev(int argc, char **argv) printf("Scanning for Btrfs filesystems in '%s'\n", argv[i]); - strncpy(args.name, argv[i], BTRFS_PATH_NAME_MAX); - args.name[BTRFS_PATH_NAME_MAX-1] = 0; + strncpy_null(args.name, argv[i]); /* * FIXME: which are the error code returned by this ioctl ? * it seems that is impossible to understand if there no is |