On Mon, Jan 27, 2014 at 02:28:28PM +0100, Gerhard Heift wrote: > To prevent unexpectet values in the unused fields of the search key fail early. > Otherwise future extensions would break the behavior of the search if current > implementations in userspace set them to values other than zero. > > Signed-off-by: Gerhard Heift <Gerhard@xxxxxxxxxx> > --- a/fs/btrfs/ioctl.c > +++ b/fs/btrfs/ioctl.c > @@ -1947,6 +1947,9 @@ static noinline int search_ioctl(struct inode *inode, > if (buf_size < sizeof(struct btrfs_ioctl_search_header)) > return -EOVERFLOW; > > + if (sk->unused || sk->unused1 | sk->unused2 | sk->unused3 | sk->unused4) > + return -EINVAL; The pattern that's been used for forward/backward compatibility is to zero the unused or reserved fields on the userspace side and ignore them completely in kernel. If any future version of the ioctl uses the now unused fields, it also has to increase the version. > + > path = btrfs_alloc_path(); > if (!path) > return -ENOMEM; -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
