Received: by 2002:a25:ad19:0:0:0:0:0 with SMTP id y25csp1059538ybi; Sat, 27 Jul 2019 01:54:42 -0700 (PDT) X-Google-Smtp-Source: APXvYqyXOfuKM12eCAbltUcfAKNTTuNgmfIDJ7DfIqU6lIlpfcRYQi+Glwi7sUhNlmfv0hUU/3uL X-Received: by 2002:a17:902:2865:: with SMTP id e92mr60973498plb.264.1564217682078; Sat, 27 Jul 2019 01:54:42 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1564217682; cv=none; d=google.com; s=arc-20160816; b=cbS9cRpZum7YOmTX1wIzR3wxCdIbrixnhvj9JxzLhxSG10xzjhnyr3rDSoFHdSgXjG +VR7EoipkRoMqPLNcGmN5ipP8XDwURB7XTz2N1vXg7XtJ6RJ2eBvcPTMsdQ3y/ohW0FY ugdF8YxoXN0Jg1h0ed2BnNnsWcpQa2aYeCItPw8VQtu1OFnMq4YTbdDa42yhyr3RIXlX Bt2YeJlCx+5tBU9C2HEijWQEfgJuOpA2BOgs3fQlzNFQNTPiMPF6wY+sjgGwS1bpqDX6 o7p95N7EA63r+FwBo9pjFJkRVAlkRWSg30wjPU7RjWPGE17K3Rjf5STOIK2o6GHWuy+8 ABnQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :dkim-signature; bh=55lHtDMtjfNlskw3j+8zYPRK4+1cB7I6V8RARCYX3GI=; b=GWJbUR/x54x5aiCU740lmTlB8sE1DbY7eUyRFMQTza1aY1KyNDxvaNAHl1P/VnvNZ5 0s7wFIcVKI92da8MZ4S+okp7ZVIgdQXIMZS78f8mmLPuy1uSWYlMWXOGOayo0s/LBwOH mL+Ss/4ODxatZoLZeuz4FM9fUZyK043XpkElbiWhTv9Gz5qksRF3+OBU4ti/9m4Ej0q1 kOAkN13LmLwhx6lF2SIHFQhKWz9iKcnKMzPhe6375Oas0Vct0XtfBivCN3Tj8x89425f vwJEr4K8rFuYGFY7WJjA80/SqIaADpERKVncgi/cLCHYEvoJpxA29P+gv1w1dHUrZvx7 UXLQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=GzLD5ekh; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id n61si19927982pjb.20.2019.07.27.01.54.27; Sat, 27 Jul 2019 01:54:42 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=GzLD5ekh; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2387438AbfG0IvV (ORCPT + 99 others); Sat, 27 Jul 2019 04:51:21 -0400 Received: from mail-pg1-f193.google.com ([209.85.215.193]:36684 "EHLO mail-pg1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727885AbfG0IvV (ORCPT ); Sat, 27 Jul 2019 04:51:21 -0400 Received: by mail-pg1-f193.google.com with SMTP id l21so25858632pgm.3; Sat, 27 Jul 2019 01:51:21 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=55lHtDMtjfNlskw3j+8zYPRK4+1cB7I6V8RARCYX3GI=; b=GzLD5ekhx8z/wb3QT917ttdtnrY+EQw9g4h227ZKoDRaDGntaoPSobxnJMTVxuAnLi Er+lioES9H6o9VYY+sYonwfyNHLpyaCOHlHvDBDdLs/Q3fdpOi80fs713rtz7hdOEqxy VMVERGr2FjK1PBUrk76jg9FOoC8CMYaXunzJVPS7467bQWINqsi8TORLeXWyzjAIiVpk AAdpMeqXxlGC5kpH4hkaC3DWg9ug0Oz44xawWoXifyM9M96mvjqa4674iYdQFCnh1WFh V0eUIoQN4+WdB1iCyJxncFi0R+h1OQlRKmS/8coSSudG8eiKmd38TIGmap5SrNoNAuM0 LMng== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id; bh=55lHtDMtjfNlskw3j+8zYPRK4+1cB7I6V8RARCYX3GI=; b=UFvgJU1uK1zNaRoqOZf4pQUBzBM9gmxFTWUZfqPYsvMVD27bS2gH4AomLsJUeh4uFj 5OfhRlwDhqWZcIIbZpfQDlAJAZUOEk9t5kEdVpK9mnqXOX81dDRabv17g4bHF8vLyRJU 6h3xHPgK3mxVeSYrZ/irgq/EyNtGSv/HuXBygFpWWl5q0goaEmRslXJIq9V0lPPJrDSz 6arrbKEgQ3LeEZCEZakayqmFLQWkK8o6asoJFpk8nlorOmB8jGOvPsC+Ar2QS1tVB8wo 2pkCbic0k9HuhSc2Xxpxnet3q0mBHP5E644J9fxevUpHVxdisiZnkAeefvadhjbFmTps S1lw== X-Gm-Message-State: APjAAAVX9r3aKvCjnDinSJUCSbZFhL7chjWNNaXDoDJkV9ud86eOS2ji ZPpLho+SOEiuvOd2KOYZcvg= X-Received: by 2002:a63:3046:: with SMTP id w67mr57703189pgw.37.1564217480832; Sat, 27 Jul 2019 01:51:20 -0700 (PDT) Received: from oslab.tsinghua.edu.cn ([2402:f000:4:72:808::3ca]) by smtp.gmail.com with ESMTPSA id r18sm52693443pfg.77.2019.07.27.01.51.18 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 27 Jul 2019 01:51:20 -0700 (PDT) From: Jia-Ju Bai To: clm@fb.com, josef@toxicpanda.com, dsterba@suse.cz, quwenruo.btrfs@gmx.com Cc: linux-btrfs@vger.kernel.org, linux-kernel@vger.kernel.org, Jia-Ju Bai Subject: [PATCH] fs: btrfs: Add an assertion to warn incorrct case in insert_inline_extent() Date: Sat, 27 Jul 2019 16:51:13 +0800 Message-Id: <20190727085113.11530-1-baijiaju1990@gmail.com> X-Mailer: git-send-email 2.17.0 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org In insert_inline_extent(), the case that compressed_size > 0 and compressed_pages = NULL cannot occur, otherwise a null-pointer dereference may occur on line 215: cpage = compressed_pages[i]; To warn this incorrect case, an assertion is added. Thank Qu Wenruo and David Sterba for good advice. Signed-off-by: Jia-Ju Bai --- fs/btrfs/inode.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index 1af069a9a0c7..21d6e2dcc25f 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c @@ -178,6 +178,9 @@ static int insert_inline_extent(struct btrfs_trans_handle *trans, size_t cur_size = size; unsigned long offset; + ASSERT((compressed_size > 0 && compressed_pages) || + (compressed_size == 0 && !compressed_pages)) + if (compressed_size && compressed_pages) cur_size = compressed_size; -- 2.17.0