From patchwork Tue Sep 12 13:42:52 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Satoru Takeuchi X-Patchwork-Id: 9949249 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork.web.codeaurora.org (Postfix) with ESMTP id EF01E6024A for ; Tue, 12 Sep 2017 13:43:01 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id E08E928FE2 for ; Tue, 12 Sep 2017 13:43:01 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id D559328FE4; Tue, 12 Sep 2017 13:43:01 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-6.3 required=2.0 tests=BAYES_00, DKIM_ADSP_CUSTOM_MED, DKIM_SIGNED, FREEMAIL_FROM, RCVD_IN_DNSWL_HI, RCVD_IN_SORBS_SPAM, T_DKIM_INVALID autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 7B77928FE3 for ; Tue, 12 Sep 2017 13:43:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751560AbdILNm5 (ORCPT ); Tue, 12 Sep 2017 09:42:57 -0400 Received: from mail-pg0-f67.google.com ([74.125.83.67]:33746 "EHLO mail-pg0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751462AbdILNmx (ORCPT ); Tue, 12 Sep 2017 09:42:53 -0400 Received: by mail-pg0-f67.google.com with SMTP id i130so4179005pgc.0 for ; Tue, 12 Sep 2017 06:42:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=date:message-id:from:to:subject:user-agent:mime-version; bh=hY3a9JFS9gVT3bmkxWIrpiXGTr1c6npKNWhEYSNgo2Y=; b=AzrYVwRsrwEen8w3nwcyj7toDxPx3MLlm6pgPIk0Fk92SECa2Z4f2KobJTdox3XAXA tZJrZGQdD73i8zaXZJ4X1E12GsBJGp+bhOxXE+55gN3fE+xtED1qOQZVNH48LiSXmezw nFTofXMmqSam2cx1aRuewyDaRXHOS1JzfamYK4brl/WAB434jvKDggaSE51i+89y4UD3 5qtTF+uRttZoZTvjxwwwSKVifpyPZXMS4okmDQNuo0QH5aXKL2AmxgDVg5ankezA/h4A XZmRZgd0u7DoYwk0FuGSOSzzegz98Xa8qsv1F87CbA7CjGSnrelX8WlH4F2DxtocqNIo 0iKw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:date:message-id:from:to:subject:user-agent :mime-version; bh=hY3a9JFS9gVT3bmkxWIrpiXGTr1c6npKNWhEYSNgo2Y=; b=PVECyG4c7DVY+TTaa2dTXxUDkgk01eu4y980YR7GFtJ2IwvlUa0k7CE9IK6YuN1h6g 6Zb79ukkH6y7fJ30G+8oHqFhdnrTkVQ/rkxgSNuDt6oMdfyLqHzKR9x1sWRW6NzWDvfa Fd3TobmByhShZ3K65Yn8zUFN5dbUEoMl1rpZ5FJRLhbFcUQL3gVyJ+jcr7yUskMPt8jX jlUEXlcJZniN7Bf6uCC06G8xIOUvrIQ15P6ObzcFE6pq/ieeYDqmm/kOyPhO+zZ8uQTG Fv4BafCL0NeenLRsIJ2NEW5ezF5OIu9KmNmR5RqUjc+yX4tgB2R09VUB5LgfZGssbOPe tb5A== X-Gm-Message-State: AHPjjUg/hujkuG9fwr5iKdKJGR7mPB7MaS4ns1xYktlKtekc4U1WaXDE RLulm8roLywrRhvd X-Google-Smtp-Source: AOwi7QCwCiSsFQZ9FgCXdYMxeZKiDF0T4aLJGHyy9zIhUrjwgfDEfVBx84RcmIO2LlGdp/Yk1+Vccw== X-Received: by 10.99.3.22 with SMTP id 22mr2204313pgd.77.1505223771912; Tue, 12 Sep 2017 06:42:51 -0700 (PDT) Received: from gopher.gmail.com (58-189-215-38f1.hyg2.eonet.ne.jp. [58.189.215.38]) by smtp.gmail.com with ESMTPSA id l27sm20214660pfg.172.2017.09.12.06.42.50 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 12 Sep 2017 06:42:51 -0700 (PDT) Date: Tue, 12 Sep 2017 22:42:52 +0900 Message-ID: <87mv60vxr7.wl-satoru.takeuchi@gmail.com> From: Satoru Takeuchi To: linux-btrfs@vger.kernel.org Subject: [PATCH] btrfs: prevent to set invalid default subvolid User-Agent: Wanderlust/2.15.9 (Almost Unreal) SEMI-EPG/1.14.7 (Harue) FLIM/1.14.9 (=?ISO-8859-4?Q?Goj=F2?=) APEL/10.8 EasyPG/1.0.0 Emacs/24.5 (x86_64-pc-linux-gnu) MULE/6.0 (HANACHIRUSATO) MIME-Version: 1.0 (generated by SEMI-EPG 1.14.7 - "Harue") Sender: linux-btrfs-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-btrfs@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP `btrfs sub set-default` succeeds to set an ID which isn't corresponding to any fs/file tree. If such the bad ID is set to a filesystem, we can't mount this filesystem without specifying `subvol` or `subvolid` mount options. Signed-off-by: Satoru Takeuchi Reviewed-by: Qu Wenruo Reviewed-by: David Sterba --- fs/btrfs/ioctl.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c index ae8fbf9..8e1bc19 100644 --- a/fs/btrfs/ioctl.c +++ b/fs/btrfs/ioctl.c @@ -4057,6 +4057,10 @@ static long btrfs_ioctl_default_subvol(struct file *file, void __user *argp) ret = PTR_ERR(new_root); goto out; } + if (!is_fstree(new_root->objectid)) { + ret = -ENOENT; + goto out; + } path = btrfs_alloc_path(); if (!path) {