From patchwork Fri Sep 8 03:00:16 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: zhizhou.tian@gmail.com X-Patchwork-Id: 811304 X-Patchwork-Delegate: pablo@netfilter.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netfilter-devel-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="bBuz04G3"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3xpMWt3xd7z9sPk for ; Fri, 8 Sep 2017 13:00:42 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754058AbdIHDAl (ORCPT ); Thu, 7 Sep 2017 23:00:41 -0400 Received: from mail-qk0-f194.google.com ([209.85.220.194]:34772 "EHLO mail-qk0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753132AbdIHDAk (ORCPT ); Thu, 7 Sep 2017 23:00:40 -0400 Received: by mail-qk0-f194.google.com with SMTP id d70so869261qkc.1; Thu, 07 Sep 2017 20:00:39 -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=TWAp+7yGAVT/RBKCNmYVPTNL6rxG2mt+PI6+08qdjV4=; b=bBuz04G3yeL2FmCXcm5/DLksMQ0dr+BR/KhlmnJAcnyUfTQj22zK5QbeoGcdMuMiMX hI1KGemvzftQcJbhaviTLBAE//TimD6hj0O7THhjRIHFoN3Rh4+fk2zySn1ViLkakUVL Sa4cFALcCvJ2kqT3JbBZdzdANP+4vKRbeqeyh+zqzcHXJjZMyc9juBOIxZ2dooXklSJY VedBmFsyvnN8ZbvgfKi2Y+/kT3RO/PyJW7LKAr38zBYKXBRCJpF6XCf2t8zsrD/6hJtQ 4fUko8j6GMNZTAQz4hZ1J+ec7BGAgiiObBVKcJMZcdhQVMJ92RC75i3eUSt7ZyqptR98 A2Dw== 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=TWAp+7yGAVT/RBKCNmYVPTNL6rxG2mt+PI6+08qdjV4=; b=P+csJDUCvApEtAn6BfBPhBmm4UwBSt/oE32Sj52AOI+83uiCyxBXC+Cb2KPgX2C64q IlllL8755j1p+OGZxhzLy/chz0qXOzitX4RyC8t0D0BEmMvSW8eMpy88H8IfgtkTtbev SLF6mhhYqSnS5oUhqZRM2gfgrSzH5fm1Eo7NVCDQipZWcv5pNwNM2kjTBaSKXezETLo7 JYyXoOT1OTOlfMMT3htAkd13HEBf+HPYGLo4Xma4p+DA6Ec8aNs27P24mmQD8YHsdz+c 6fBLlQrZiIe9N4J7RrAC/ozyfjGn8YMmzjxYJjVyQ9KZuUpasrQYFp3IiSjf/mwkChrF cNUg== X-Gm-Message-State: AHPjjUifrhbckeqCAW5O1gaHoo6F7G2SV8Ohw0kjZ1Uh5MHC5bcA+4FM MLfzWBWCNhfEKg== X-Google-Smtp-Source: AOwi7QBSPGBp2HXCE5zJPhH1+xEeK+Jk2OZyzgEAux07myCSBBjkDStsMLI8wm81gkoPV4c6zkzlAQ== X-Received: by 10.55.201.155 with SMTP id m27mr1988006qkl.57.1504839639352; Thu, 07 Sep 2017 20:00:39 -0700 (PDT) Received: from localhost.localdomain (lax-cn2.rssn.cn. [198.181.34.251]) by smtp.gmail.com with ESMTPSA id y77sm593990qka.87.2017.09.07.20.00.34 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Thu, 07 Sep 2017 20:00:37 -0700 (PDT) From: zhizhou.tian@gmail.com To: pablo@netfilter.org, kadlec@blackhole.kfki.hu, fw@strlen.de, davem@davemloft.net, netfilter-devel@vger.kernel.org, coreteam@netfilter.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Cc: Zhizhou Tian Subject: [PATCH] net:netfilter alloc xt_byteslimit_htable with wrong size Date: Fri, 8 Sep 2017 11:00:16 +0800 Message-Id: <1504839616-14519-1-git-send-email-zhizhou.tian@gmail.com> X-Mailer: git-send-email 2.7.4 Sender: netfilter-devel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netfilter-devel@vger.kernel.org From: Zhizhou Tian struct xt_byteslimit_htable used hlist_head, but alloc memory with sizeof(struct list_head) Change-Id: I75bc60e47e0823700d4303c9d763b7995e3b7bb3 Signed-off-by: Zhizhou Tian --- net/netfilter/xt_hashlimit.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/net/netfilter/xt_hashlimit.c b/net/netfilter/xt_hashlimit.c index 10d4823..962ea4a 100644 --- a/net/netfilter/xt_hashlimit.c +++ b/net/netfilter/xt_hashlimit.c @@ -279,7 +279,7 @@ static int htable_create(struct net *net, struct hashlimit_cfg3 *cfg, size = cfg->size; } else { size = (totalram_pages << PAGE_SHIFT) / 16384 / - sizeof(struct list_head); + sizeof(struct hlist_head); if (totalram_pages > 1024 * 1024 * 1024 / PAGE_SIZE) size = 8192; if (size < 16) @@ -287,7 +287,7 @@ static int htable_create(struct net *net, struct hashlimit_cfg3 *cfg, } /* FIXME: don't use vmalloc() here or anywhere else -HW */ hinfo = vmalloc(sizeof(struct xt_hashlimit_htable) + - sizeof(struct list_head) * size); + sizeof(struct hlist_head) * size); if (hinfo == NULL) return -ENOMEM; *out_hinfo = hinfo;