Stefan Behrens
2012-Mar-19 15:17 UTC
[PATCH] Btrfs: fix btrfs_ioctl_dev_info() crash on missing device
When a filesystem is mounted with the degraded option, it is possible that some of the devices are not there. btrfs_ioctl_dev_info() crashs in this case because the device name is a NULL pointer. This ioctl was only used for scrub. Signed-off-by: Stefan Behrens <sbehrens@giantdisaster.de> --- fs/btrfs/ioctl.c | 5 ++++- 1 files changed, 4 insertions(+), 1 deletions(-) diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c index 6834be4..9b4028b 100644 --- a/fs/btrfs/ioctl.c +++ b/fs/btrfs/ioctl.c @@ -2188,7 +2188,10 @@ static long btrfs_ioctl_dev_info(struct btrfs_root *root, void __user *arg) di_args->bytes_used = dev->bytes_used; di_args->total_bytes = dev->total_bytes; memcpy(di_args->uuid, dev->uuid, sizeof(di_args->uuid)); - strncpy(di_args->path, dev->name, sizeof(di_args->path)); + if (dev->name) + strncpy(di_args->path, dev->name, sizeof(di_args->path)); + else + di_args->path[0] = ''\0''; out: if (ret == 0 && copy_to_user(arg, di_args, sizeof(*di_args))) -- 1.7.3.4 -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
Helmut Hullen
2012-Mar-19 15:54 UTC
Re: [PATCH] Btrfs: fix btrfs_ioctl_dev_info() crash on missing device
Hallo, Stefan, Du meintest am 19.03.12:> When a filesystem is mounted with the degraded option, it is > possible that some of the devices are not there. > btrfs_ioctl_dev_info() crashs in this case because the device > name is a NULL pointer. This ioctl was only used for scrub.Just for curiosity: can that happen when I first delete a partition/disk and then run "btrfs scrub start"? Viele Gruesse! Helmut -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html