All of lore.kernel.org
 help / color / mirror / Atom feed
From: kbuild test robot <lkp@intel.com>
To: Laura Garcia Liebana <nevola@gmail.com>
Cc: kbuild-all@01.org, netfilter-devel@vger.kernel.org
Subject: Re: [PATCH v3] netfilter: nf_tables: Ensure init attributes are within the bounds
Date: Mon, 22 Aug 2016 23:27:47 +0800	[thread overview]
Message-ID: <201608222327.UPpvxS65%fengguang.wu@intel.com> (raw)
In-Reply-To: <20160818114521.GA32566@sonyv>

[-- Attachment #1: Type: text/plain, Size: 4909 bytes --]

Hi Laura,

[auto build test WARNING on nf-next/master]
[also build test WARNING on v4.8-rc3 next-20160822]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]
[Suggest to use git(>=2.9.0) format-patch --base=<commit> (or --base=auto for convenience) to record what (public, well-known) commit your patch series was built on]
[Check https://git-scm.com/docs/git-format-patch for more information]

url:    https://github.com/0day-ci/linux/commits/Laura-Garcia-Liebana/netfilter-nf_tables-Ensure-init-attributes-are-within-the-bounds/20160818-194709
base:   https://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next.git master
config: x86_64-randconfig-s4-08190653 (attached as .config)
compiler: gcc-6 (Debian 6.1.1-9) 6.1.1 20160705
reproduce:
        # save the attached .config to linux build tree
        make ARCH=x86_64 

All warnings (new ones prefixed by >>):

   In file included from include/linux/linkage.h:4:0,
                    from include/linux/kernel.h:6,
                    from net/netfilter/nft_cmp.c:11:
   net/netfilter/nft_cmp.c: In function 'nft_cmp_init':
   net/netfilter/nft_cmp.c:91:18: error: 'NFT_CMP_MAX' undeclared (first use in this function)
     if (priv->op >= NFT_CMP_MAX)
                     ^
   include/linux/compiler.h:149:30: note: in definition of macro '__trace_if'
     if (__builtin_constant_p(!!(cond)) ? !!(cond) :   \
                                 ^~~~
>> net/netfilter/nft_cmp.c:91:2: note: in expansion of macro 'if'
     if (priv->op >= NFT_CMP_MAX)
     ^~
   net/netfilter/nft_cmp.c:91:18: note: each undeclared identifier is reported only once for each function it appears in
     if (priv->op >= NFT_CMP_MAX)
                     ^
   include/linux/compiler.h:149:30: note: in definition of macro '__trace_if'
     if (__builtin_constant_p(!!(cond)) ? !!(cond) :   \
                                 ^~~~
>> net/netfilter/nft_cmp.c:91:2: note: in expansion of macro 'if'
     if (priv->op >= NFT_CMP_MAX)
     ^~

vim +/if +91 net/netfilter/nft_cmp.c

     5	 * it under the terms of the GNU General Public License version 2 as
     6	 * published by the Free Software Foundation.
     7	 *
     8	 * Development of this code funded by Astaro AG (http://www.astaro.com/)
     9	 */
    10	
  > 11	#include <linux/kernel.h>
    12	#include <linux/init.h>
    13	#include <linux/module.h>
    14	#include <linux/netlink.h>
    15	#include <linux/netfilter.h>
    16	#include <linux/netfilter/nf_tables.h>
    17	#include <net/netfilter/nf_tables_core.h>
    18	#include <net/netfilter/nf_tables.h>
    19	
    20	struct nft_cmp_expr {
    21		struct nft_data		data;
    22		enum nft_registers	sreg:8;
    23		u8			len;
    24		enum nft_cmp_ops	op:8;
    25	};
    26	
    27	static void nft_cmp_eval(const struct nft_expr *expr,
    28				 struct nft_regs *regs,
    29				 const struct nft_pktinfo *pkt)
    30	{
    31		const struct nft_cmp_expr *priv = nft_expr_priv(expr);
    32		int d;
    33	
    34		d = memcmp(&regs->data[priv->sreg], &priv->data, priv->len);
    35		switch (priv->op) {
    36		case NFT_CMP_EQ:
    37			if (d != 0)
    38				goto mismatch;
    39			break;
    40		case NFT_CMP_NEQ:
    41			if (d == 0)
    42				goto mismatch;
    43			break;
    44		case NFT_CMP_LT:
    45			if (d == 0)
    46				goto mismatch;
    47		case NFT_CMP_LTE:
    48			if (d > 0)
    49				goto mismatch;
    50			break;
    51		case NFT_CMP_GT:
    52			if (d == 0)
    53				goto mismatch;
    54		case NFT_CMP_GTE:
    55			if (d < 0)
    56				goto mismatch;
    57			break;
    58		}
    59		return;
    60	
    61	mismatch:
    62		regs->verdict.code = NFT_BREAK;
    63	}
    64	
    65	static const struct nla_policy nft_cmp_policy[NFTA_CMP_MAX + 1] = {
    66		[NFTA_CMP_SREG]		= { .type = NLA_U32 },
    67		[NFTA_CMP_OP]		= { .type = NLA_U32 },
    68		[NFTA_CMP_DATA]		= { .type = NLA_NESTED },
    69	};
    70	
    71	static int nft_cmp_init(const struct nft_ctx *ctx, const struct nft_expr *expr,
    72				const struct nlattr * const tb[])
    73	{
    74		struct nft_cmp_expr *priv = nft_expr_priv(expr);
    75		struct nft_data_desc desc;
    76		int err;
    77	
    78		err = nft_data_init(NULL, &priv->data, sizeof(priv->data), &desc,
    79				    tb[NFTA_CMP_DATA]);
    80		BUG_ON(err < 0);
    81	
    82		priv->sreg = nft_parse_register(tb[NFTA_CMP_SREG]);
    83		err = nft_validate_register_load(priv->sreg, desc.len);
    84		if (err < 0)
    85			return err;
    86	
    87		if (desc.len > U8_MAX)
    88			return -ERANGE;
    89		priv->len = desc.len;
    90		priv->op  = ntohl(nla_get_be32(tb[NFTA_CMP_OP]));
  > 91		if (priv->op >= NFT_CMP_MAX)
    92			return -ERANGE;
    93	
    94		return 0;

---
0-DAY kernel test infrastructure                Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all                   Intel Corporation

[-- Attachment #2: .config.gz --]
[-- Type: application/octet-stream, Size: 21425 bytes --]

      parent reply	other threads:[~2016-08-22 15:28 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-08-18 11:45 [PATCH v3] netfilter: nf_tables: Ensure init attributes are within the bounds Laura Garcia Liebana
2016-08-22  9:10 ` kbuild test robot
2016-08-22  9:17   ` Laura Garcia
2016-08-22 15:27 ` kbuild test robot [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=201608222327.UPpvxS65%fengguang.wu@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild-all@01.org \
    --cc=netfilter-devel@vger.kernel.org \
    --cc=nevola@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.