From patchwork Fri Oct 7 07:23:00 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Qu Wenruo X-Patchwork-Id: 9365723 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 21D74600C8 for ; Fri, 7 Oct 2016 07:23:41 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0BA7D2935D for ; Fri, 7 Oct 2016 07:23:41 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 0017929361; Fri, 7 Oct 2016 07:23:40 +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.9 required=2.0 tests=BAYES_00, NORMAL_HTTP_TO_IP, RCVD_IN_DNSWL_HI 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 4F4692935F for ; Fri, 7 Oct 2016 07:23:37 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1755163AbcJGHXe (ORCPT ); Fri, 7 Oct 2016 03:23:34 -0400 Received: from cn.fujitsu.com ([222.73.24.84]:37257 "EHLO song.cn.fujitsu.com" rhost-flags-OK-FAIL-OK-OK) by vger.kernel.org with ESMTP id S1755062AbcJGHXQ (ORCPT ); Fri, 7 Oct 2016 03:23:16 -0400 X-IronPort-AV: E=Sophos;i="5.20,367,1444665600"; d="scan'208";a="884169" Received: from unknown (HELO cn.fujitsu.com) ([10.167.250.3]) by song.cn.fujitsu.com with ESMTP; 07 Oct 2016 15:23:10 +0800 Received: from adam-work.localdomain (unknown [10.167.226.34]) by cn.fujitsu.com (Postfix) with ESMTP id 3EC4F406CF6D; Fri, 7 Oct 2016 15:23:07 +0800 (CST) From: Qu Wenruo To: linux-btrfs@vger.kernel.org Cc: dsterba@suse.cz Subject: [PATCH 2/2] btrfs-progs: fsck-test: Add image for quota verify stack overflow Date: Fri, 7 Oct 2016 15:23:00 +0800 Message-Id: <20161007072300.3367-2-quwenruo@cn.fujitsu.com> X-Mailer: git-send-email 2.10.0 In-Reply-To: <20161007072300.3367-1-quwenruo@cn.fujitsu.com> References: <20161007072300.3367-1-quwenruo@cn.fujitsu.com> MIME-Version: 1.0 X-yoursite-MailScanner-ID: 3EC4F406CF6D.A408C X-yoursite-MailScanner: Found to be clean X-yoursite-MailScanner-From: quwenruo@cn.fujitsu.com 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 For image with tree reloc tree, if its height is over level 2, the root node's backref will point to itself. It's valid for kernel, but quota verify code can't handle it and cause a infinite call, overflowing the stack. Add minimal image to reproduce the bug, as regression test. Signed-off-by: Qu Wenruo --- .../quota_balance_loop_backref.raw.xz | Bin 0 -> 71116 bytes tests/fsck-tests/023-qgroup-stack-overflow/test.sh | 19 +++++++++++++++++++ 2 files changed, 19 insertions(+) create mode 100644 tests/fsck-tests/023-qgroup-stack-overflow/quota_balance_loop_backref.raw.xz create mode 100644 tests/fsck-tests/023-qgroup-stack-overflow/test.sh diff --git a/tests/fsck-tests/023-qgroup-stack-overflow/quota_balance_loop_backref.raw.xz b/tests/fsck-tests/023-qgroup-stack-overflow/quota_balance_loop_backref.raw.xz new file mode 100644 index 0000000000000000000000000000000000000000..48a89ad8fed72766a6cb7720025f60ed0e88ea7a GIT binary patch literal 71116 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 Lu>HAE+gkqv$P}|k literal 0 HcmV?d00001 diff --git a/tests/fsck-tests/023-qgroup-stack-overflow/test.sh b/tests/fsck-tests/023-qgroup-stack-overflow/test.sh new file mode 100644 index 0000000..f49518e --- /dev/null +++ b/tests/fsck-tests/023-qgroup-stack-overflow/test.sh @@ -0,0 +1,19 @@ +#!/bin/bash +# check whether btrfsck quota verify will cause stack overflow. +# this is caused by lack of handle for tree reloc tree. +# fixed by patch: +# btrfs-progs: Fix stack overflow for checking qgroup on tree reloc tree + +source $TOP/tests/common + +check_prereq btrfs + +for img in $(find . \( -iname '*.img' -o \ + -iname '*.img.xz' -o \ + -iname '*.raw' -o \ + -iname '*.raw.xz' \) | sort) +do + image=$(extract_image $img) + run_check $TOP/btrfs check "$image" + rm -f "$image" +done