From patchwork Thu Nov 10 12:57:49 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jozsef Kadlecsik X-Patchwork-Id: 693214 X-Patchwork-Delegate: pablo@netfilter.org Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 3tF35F1s0sz9t0Z for ; Thu, 10 Nov 2016 23:58:41 +1100 (AEDT) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=blackhole.kfki.hu header.i=@blackhole.kfki.hu header.b="FLW9wR3/"; dkim-atps=neutral Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933083AbcKJM6h (ORCPT ); Thu, 10 Nov 2016 07:58:37 -0500 Received: from smtp-in.kfki.hu ([148.6.0.26]:36187 "EHLO smtp1.kfki.hu" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S933012AbcKJM6C (ORCPT ); Thu, 10 Nov 2016 07:58:02 -0500 Received: from localhost (localhost [127.0.0.1]) by smtp1.kfki.hu (Postfix) with ESMTP id 5744F3C800AB; Thu, 10 Nov 2016 13:58:00 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= blackhole.kfki.hu; h=references:in-reply-to:x-mailer:message-id :date:date:from:from:received:received:received; s=20151130; t= 1478782678; x=1480597079; bh=V6r//Segnd+Je9tQEwso+9UQgmyVSbZGsdn ox2x34CM=; b=FLW9wR3/sxbR8uKG6kUTD2zIkU24iigTsstV7LeeKoNOwMQodbW fzTQ+3Ub75Fbz8YGDNF0ONwBdheq+341rDFoLijFXS1queZt7U6S8YsZPelaHHJU ul3RxG4+OZZyy8nvUZrSfKWJNP0G+Cw9KjRjXE0V51tXRKPx9lv41W8U= X-Virus-Scanned: Debian amavisd-new at smtp1.kfki.hu Received: from smtp1.kfki.hu ([127.0.0.1]) by localhost (smtp1.kfki.hu [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id Z89qqlxHBeX6; Thu, 10 Nov 2016 13:57:58 +0100 (CET) Received: from blackhole.kfki.hu (blackhole.kfki.hu [148.6.0.114]) by smtp1.kfki.hu (Postfix) with ESMTP id AE3453C80119; Thu, 10 Nov 2016 13:57:57 +0100 (CET) Received: by blackhole.kfki.hu (Postfix, from userid 1000) id 9034722991; Thu, 10 Nov 2016 13:57:57 +0100 (CET) From: Jozsef Kadlecsik To: netfilter-devel@vger.kernel.org Cc: Pablo Neira Ayuso Subject: [PATCH 15/22] netfilter: ipset: Make sure element data size is a multiple of u32 Date: Thu, 10 Nov 2016 13:57:49 +0100 Message-Id: <1478782676-9770-16-git-send-email-kadlec@blackhole.kfki.hu> X-Mailer: git-send-email 1.8.5.1 In-Reply-To: <1478782676-9770-1-git-send-email-kadlec@blackhole.kfki.hu> References: <1478782676-9770-1-git-send-email-kadlec@blackhole.kfki.hu> Sender: netfilter-devel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netfilter-devel@vger.kernel.org Data for hashing required to be array of u32. Make sure that element data always multiple of u32. Ported from a patch proposed by Sergey Popovich . Signed-off-by: Jozsef Kadlecsik --- net/netfilter/ipset/ip_set_hash_gen.h | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/net/netfilter/ipset/ip_set_hash_gen.h b/net/netfilter/ipset/ip_set_hash_gen.h index 6c88c20..34f115f 100644 --- a/net/netfilter/ipset/ip_set_hash_gen.h +++ b/net/netfilter/ipset/ip_set_hash_gen.h @@ -260,8 +260,14 @@ struct net_prefixes { #endif #define HKEY(data, initval, htable_bits) \ -(jhash2((u32 *)(data), HKEY_DATALEN / sizeof(u32), initval) \ - & jhash_mask(htable_bits)) +({ \ + const u32 *__k = (const u32 *)data; \ + u32 __l = HKEY_DATALEN / sizeof(u32); \ + \ + BUILD_BUG_ON(HKEY_DATALEN % sizeof(u32) != 0); \ + \ + jhash2(__k, __l, initval) & jhash_mask(htable_bits); \ +}) #ifndef htype #ifndef HTYPE