On Tue, Mar 22, 2016 at 03:40:29AM -0700, Petros Angelatos wrote: > When `btrfs filesystem label /foo bar` command is invoked, it will pass > the buffer allocated in the argv array directly to set_label_mounted() > and then to the BTRFS_IOC_SET_FSLABEL ioctl. > > However, the kernel code handling the ioctl will always try to copy > BTRFS_LABEL_SIZE bytes[1] from the userland pointer. Under certain > conditions and when the label is small enough, the command will fail > with: > > [root@localhost /]# btrfs filesystem label /mnt f > ERROR: unable to set label Bad address
Good catch, I was not aware of the hidden requirement. > Fix this by making sure we pass a BTRFS_LABEL_SIZE sized buffer to the > ioctl containing the desired label. > > [1] > https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/fs/btrfs/ioctl.c?id=refs/tags/v4.5#n5231 > > Signed-off-by: Petros Angelatos <petros...@gmail.com> Applied, thanks. -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html