From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: net/netfilter/nf_tables_api.c:2014:2: warning: Assignment of function parameter has no effect outside the function. Did you forget dereferencing it? [uselessAssignmentPtrArg]
Date: Tue, 25 Jan 2022 08:26:08 +0800 [thread overview]
Message-ID: <202201250614.Oo7D9VA6-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 15562 bytes --]
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Pablo Neira Ayuso <pablo@netfilter.org>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: dd81e1c7d5fb126e5fbc5c9e334d7b3ec29a16a0
commit: 2c865a8a28a10e9800a3dd07ca339d24563e3d65 netfilter: nf_tables: add rule blob layout
date: 2 weeks ago
:::::: branch date: 31 hours ago
:::::: commit date: 2 weeks ago
compiler: arceb-elf-gcc (GCC) 11.2.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
cppcheck possible warnings: (new ones prefixed by >>, may not real problems)
>> net/netfilter/nf_tables_api.c:2014:2: warning: Assignment of function parameter has no effect outside the function. Did you forget dereferencing it? [uselessAssignmentPtrArg]
ptr += offsetof(struct nft_rule_dp, data);
^
>> net/netfilter/nf_tables_api.c:1839:24: warning: Uninitialized variable: hook [uninitvar]
if (this->ops.dev == hook->ops.dev)
^
net/netfilter/nf_tables_api.c:2247:39: warning: Uninitialized variable: hook [uninitvar]
if (!nft_hook_list_find(hook_list1, hook))
^
net/netfilter/nf_tables_api.c:7235:9: warning: Uninitialized variable: hook [uninitvar]
if (hook->ops.dev == hook2->ops.dev &&
^
>> net/netfilter/nf_tables_api.c:8527:7: warning: Uninitialized variable: adp [uninitvar]
if (adp->table == table)
^
net/netfilter/nf_tables_api.c:8554:7: warning: Uninitialized variable: adp [uninitvar]
if (adp->table == table)
^
vim +2014 net/netfilter/nf_tables_api.c
3f0465a9ef0262 Pablo Neira Ayuso 2019-10-16 1832
abadb2f865d72a Pablo Neira Ayuso 2020-05-20 1833 static struct nft_hook *nft_hook_list_find(struct list_head *hook_list,
b75a3e8371bce7 Pablo Neira Ayuso 2019-10-16 1834 const struct nft_hook *this)
b75a3e8371bce7 Pablo Neira Ayuso 2019-10-16 1835 {
b75a3e8371bce7 Pablo Neira Ayuso 2019-10-16 1836 struct nft_hook *hook;
b75a3e8371bce7 Pablo Neira Ayuso 2019-10-16 1837
b75a3e8371bce7 Pablo Neira Ayuso 2019-10-16 1838 list_for_each_entry(hook, hook_list, list) {
b75a3e8371bce7 Pablo Neira Ayuso 2019-10-16 @1839 if (this->ops.dev == hook->ops.dev)
abadb2f865d72a Pablo Neira Ayuso 2020-05-20 1840 return hook;
b75a3e8371bce7 Pablo Neira Ayuso 2019-10-16 1841 }
b75a3e8371bce7 Pablo Neira Ayuso 2019-10-16 1842
abadb2f865d72a Pablo Neira Ayuso 2020-05-20 1843 return NULL;
b75a3e8371bce7 Pablo Neira Ayuso 2019-10-16 1844 }
b75a3e8371bce7 Pablo Neira Ayuso 2019-10-16 1845
3f0465a9ef0262 Pablo Neira Ayuso 2019-10-16 1846 static int nf_tables_parse_netdev_hooks(struct net *net,
3f0465a9ef0262 Pablo Neira Ayuso 2019-10-16 1847 const struct nlattr *attr,
3f0465a9ef0262 Pablo Neira Ayuso 2019-10-16 1848 struct list_head *hook_list)
3f0465a9ef0262 Pablo Neira Ayuso 2019-10-16 1849 {
3f0465a9ef0262 Pablo Neira Ayuso 2019-10-16 1850 struct nft_hook *hook, *next;
3f0465a9ef0262 Pablo Neira Ayuso 2019-10-16 1851 const struct nlattr *tmp;
3f0465a9ef0262 Pablo Neira Ayuso 2019-10-16 1852 int rem, n = 0, err;
3f0465a9ef0262 Pablo Neira Ayuso 2019-10-16 1853
3f0465a9ef0262 Pablo Neira Ayuso 2019-10-16 1854 nla_for_each_nested(tmp, attr, rem) {
3f0465a9ef0262 Pablo Neira Ayuso 2019-10-16 1855 if (nla_type(tmp) != NFTA_DEVICE_NAME) {
3f0465a9ef0262 Pablo Neira Ayuso 2019-10-16 1856 err = -EINVAL;
3f0465a9ef0262 Pablo Neira Ayuso 2019-10-16 1857 goto err_hook;
3f0465a9ef0262 Pablo Neira Ayuso 2019-10-16 1858 }
3f0465a9ef0262 Pablo Neira Ayuso 2019-10-16 1859
3f0465a9ef0262 Pablo Neira Ayuso 2019-10-16 1860 hook = nft_netdev_hook_alloc(net, tmp);
3f0465a9ef0262 Pablo Neira Ayuso 2019-10-16 1861 if (IS_ERR(hook)) {
3f0465a9ef0262 Pablo Neira Ayuso 2019-10-16 1862 err = PTR_ERR(hook);
3f0465a9ef0262 Pablo Neira Ayuso 2019-10-16 1863 goto err_hook;
3f0465a9ef0262 Pablo Neira Ayuso 2019-10-16 1864 }
b75a3e8371bce7 Pablo Neira Ayuso 2019-10-16 1865 if (nft_hook_list_find(hook_list, hook)) {
cd77e75b5e4632 Dan Carpenter 2020-01-16 1866 kfree(hook);
b75a3e8371bce7 Pablo Neira Ayuso 2019-10-16 1867 err = -EEXIST;
b75a3e8371bce7 Pablo Neira Ayuso 2019-10-16 1868 goto err_hook;
b75a3e8371bce7 Pablo Neira Ayuso 2019-10-16 1869 }
3f0465a9ef0262 Pablo Neira Ayuso 2019-10-16 1870 list_add_tail(&hook->list, hook_list);
3f0465a9ef0262 Pablo Neira Ayuso 2019-10-16 1871 n++;
3f0465a9ef0262 Pablo Neira Ayuso 2019-10-16 1872
cb662ac6711f71 Pablo Neira Ayuso 2019-10-16 1873 if (n == NFT_NETDEVICE_MAX) {
3f0465a9ef0262 Pablo Neira Ayuso 2019-10-16 1874 err = -EFBIG;
3f0465a9ef0262 Pablo Neira Ayuso 2019-10-16 1875 goto err_hook;
3f0465a9ef0262 Pablo Neira Ayuso 2019-10-16 1876 }
3f0465a9ef0262 Pablo Neira Ayuso 2019-10-16 1877 }
3f0465a9ef0262 Pablo Neira Ayuso 2019-10-16 1878
3f0465a9ef0262 Pablo Neira Ayuso 2019-10-16 1879 return 0;
3f0465a9ef0262 Pablo Neira Ayuso 2019-10-16 1880
3f0465a9ef0262 Pablo Neira Ayuso 2019-10-16 1881 err_hook:
3f0465a9ef0262 Pablo Neira Ayuso 2019-10-16 1882 list_for_each_entry_safe(hook, next, hook_list, list) {
3f0465a9ef0262 Pablo Neira Ayuso 2019-10-16 1883 list_del(&hook->list);
3f0465a9ef0262 Pablo Neira Ayuso 2019-10-16 1884 kfree(hook);
3f0465a9ef0262 Pablo Neira Ayuso 2019-10-16 1885 }
3f0465a9ef0262 Pablo Neira Ayuso 2019-10-16 1886 return err;
3f0465a9ef0262 Pablo Neira Ayuso 2019-10-16 1887 }
3f0465a9ef0262 Pablo Neira Ayuso 2019-10-16 1888
508f8ccdab0ef5 Pablo Neira Ayuso 2016-08-02 1889 struct nft_chain_hook {
508f8ccdab0ef5 Pablo Neira Ayuso 2016-08-02 1890 u32 num;
84ba7dd71add05 Florian Westphal 2017-12-08 1891 s32 priority;
32537e91847a56 Pablo Neira Ayuso 2018-03-27 1892 const struct nft_chain_type *type;
d54725cd11a57c Pablo Neira Ayuso 2019-10-16 1893 struct list_head list;
508f8ccdab0ef5 Pablo Neira Ayuso 2016-08-02 1894 };
508f8ccdab0ef5 Pablo Neira Ayuso 2016-08-02 1895
d54725cd11a57c Pablo Neira Ayuso 2019-10-16 1896 static int nft_chain_parse_netdev(struct net *net,
d54725cd11a57c Pablo Neira Ayuso 2019-10-16 1897 struct nlattr *tb[],
d54725cd11a57c Pablo Neira Ayuso 2019-10-16 1898 struct list_head *hook_list)
d54725cd11a57c Pablo Neira Ayuso 2019-10-16 1899 {
d54725cd11a57c Pablo Neira Ayuso 2019-10-16 1900 struct nft_hook *hook;
d54725cd11a57c Pablo Neira Ayuso 2019-10-16 1901 int err;
d54725cd11a57c Pablo Neira Ayuso 2019-10-16 1902
d54725cd11a57c Pablo Neira Ayuso 2019-10-16 1903 if (tb[NFTA_HOOK_DEV]) {
d54725cd11a57c Pablo Neira Ayuso 2019-10-16 1904 hook = nft_netdev_hook_alloc(net, tb[NFTA_HOOK_DEV]);
d54725cd11a57c Pablo Neira Ayuso 2019-10-16 1905 if (IS_ERR(hook))
d54725cd11a57c Pablo Neira Ayuso 2019-10-16 1906 return PTR_ERR(hook);
d54725cd11a57c Pablo Neira Ayuso 2019-10-16 1907
d54725cd11a57c Pablo Neira Ayuso 2019-10-16 1908 list_add_tail(&hook->list, hook_list);
d54725cd11a57c Pablo Neira Ayuso 2019-10-16 1909 } else if (tb[NFTA_HOOK_DEVS]) {
d54725cd11a57c Pablo Neira Ayuso 2019-10-16 1910 err = nf_tables_parse_netdev_hooks(net, tb[NFTA_HOOK_DEVS],
d54725cd11a57c Pablo Neira Ayuso 2019-10-16 1911 hook_list);
d54725cd11a57c Pablo Neira Ayuso 2019-10-16 1912 if (err < 0)
d54725cd11a57c Pablo Neira Ayuso 2019-10-16 1913 return err;
05abe4456fa376 Pablo Neira Ayuso 2020-05-20 1914
05abe4456fa376 Pablo Neira Ayuso 2020-05-20 1915 if (list_empty(hook_list))
05abe4456fa376 Pablo Neira Ayuso 2020-05-20 1916 return -EINVAL;
d54725cd11a57c Pablo Neira Ayuso 2019-10-16 1917 } else {
d54725cd11a57c Pablo Neira Ayuso 2019-10-16 1918 return -EINVAL;
d54725cd11a57c Pablo Neira Ayuso 2019-10-16 1919 }
d54725cd11a57c Pablo Neira Ayuso 2019-10-16 1920
d54725cd11a57c Pablo Neira Ayuso 2019-10-16 1921 return 0;
d54725cd11a57c Pablo Neira Ayuso 2019-10-16 1922 }
d54725cd11a57c Pablo Neira Ayuso 2019-10-16 1923
508f8ccdab0ef5 Pablo Neira Ayuso 2016-08-02 1924 static int nft_chain_parse_hook(struct net *net,
508f8ccdab0ef5 Pablo Neira Ayuso 2016-08-02 1925 const struct nlattr * const nla[],
36596dadf54a92 Pablo Neira Ayuso 2018-01-09 1926 struct nft_chain_hook *hook, u8 family,
983c4fcb81d6bd Pablo Neira Ayuso 2021-05-19 1927 struct netlink_ext_ack *extack, bool autoload)
508f8ccdab0ef5 Pablo Neira Ayuso 2016-08-02 1928 {
d59d2f82f984df Pablo Neira Ayuso 2021-04-23 1929 struct nftables_pernet *nft_net = nft_pernet(net);
508f8ccdab0ef5 Pablo Neira Ayuso 2016-08-02 1930 struct nlattr *ha[NFTA_HOOK_MAX + 1];
32537e91847a56 Pablo Neira Ayuso 2018-03-27 1931 const struct nft_chain_type *type;
508f8ccdab0ef5 Pablo Neira Ayuso 2016-08-02 1932 int err;
508f8ccdab0ef5 Pablo Neira Ayuso 2016-08-02 1933
0854db2aaef3fc Florian Westphal 2021-04-01 1934 lockdep_assert_held(&nft_net->commit_mutex);
f102d66b335a41 Florian Westphal 2018-07-11 1935 lockdep_nfnl_nft_mutex_not_held();
f102d66b335a41 Florian Westphal 2018-07-11 1936
8cb081746c031f Johannes Berg 2019-04-26 1937 err = nla_parse_nested_deprecated(ha, NFTA_HOOK_MAX,
8cb081746c031f Johannes Berg 2019-04-26 1938 nla[NFTA_CHAIN_HOOK],
fceb6435e85298 Johannes Berg 2017-04-12 1939 nft_hook_policy, NULL);
508f8ccdab0ef5 Pablo Neira Ayuso 2016-08-02 1940 if (err < 0)
508f8ccdab0ef5 Pablo Neira Ayuso 2016-08-02 1941 return err;
508f8ccdab0ef5 Pablo Neira Ayuso 2016-08-02 1942
508f8ccdab0ef5 Pablo Neira Ayuso 2016-08-02 1943 if (ha[NFTA_HOOK_HOOKNUM] == NULL ||
508f8ccdab0ef5 Pablo Neira Ayuso 2016-08-02 1944 ha[NFTA_HOOK_PRIORITY] == NULL)
508f8ccdab0ef5 Pablo Neira Ayuso 2016-08-02 1945 return -EINVAL;
508f8ccdab0ef5 Pablo Neira Ayuso 2016-08-02 1946
508f8ccdab0ef5 Pablo Neira Ayuso 2016-08-02 1947 hook->num = ntohl(nla_get_be32(ha[NFTA_HOOK_HOOKNUM]));
508f8ccdab0ef5 Pablo Neira Ayuso 2016-08-02 1948 hook->priority = ntohl(nla_get_be32(ha[NFTA_HOOK_PRIORITY]));
508f8ccdab0ef5 Pablo Neira Ayuso 2016-08-02 1949
826035498ec14b Pablo Neira Ayuso 2020-01-21 1950 type = __nft_chain_type_get(family, NFT_CHAIN_T_DEFAULT);
826035498ec14b Pablo Neira Ayuso 2020-01-21 1951 if (!type)
826035498ec14b Pablo Neira Ayuso 2020-01-21 1952 return -EOPNOTSUPP;
826035498ec14b Pablo Neira Ayuso 2020-01-21 1953
508f8ccdab0ef5 Pablo Neira Ayuso 2016-08-02 1954 if (nla[NFTA_CHAIN_TYPE]) {
452238e8d5ffd8 Florian Westphal 2018-07-11 1955 type = nf_tables_chain_type_lookup(net, nla[NFTA_CHAIN_TYPE],
445509eb9b0027 Pablo Neira Ayuso 2018-08-03 1956 family, autoload);
983c4fcb81d6bd Pablo Neira Ayuso 2021-05-19 1957 if (IS_ERR(type)) {
983c4fcb81d6bd Pablo Neira Ayuso 2021-05-19 1958 NL_SET_BAD_ATTR(extack, nla[NFTA_CHAIN_TYPE]);
508f8ccdab0ef5 Pablo Neira Ayuso 2016-08-02 1959 return PTR_ERR(type);
508f8ccdab0ef5 Pablo Neira Ayuso 2016-08-02 1960 }
983c4fcb81d6bd Pablo Neira Ayuso 2021-05-19 1961 }
d25e2e9388eda6 Pablo Neira Ayuso 2020-10-14 1962 if (hook->num >= NFT_MAX_HOOKS || !(type->hook_mask & (1 << hook->num)))
508f8ccdab0ef5 Pablo Neira Ayuso 2016-08-02 1963 return -EOPNOTSUPP;
84ba7dd71add05 Florian Westphal 2017-12-08 1964
84ba7dd71add05 Florian Westphal 2017-12-08 1965 if (type->type == NFT_CHAIN_T_NAT &&
84ba7dd71add05 Florian Westphal 2017-12-08 1966 hook->priority <= NF_IP_PRI_CONNTRACK)
84ba7dd71add05 Florian Westphal 2017-12-08 1967 return -EOPNOTSUPP;
84ba7dd71add05 Florian Westphal 2017-12-08 1968
983c4fcb81d6bd Pablo Neira Ayuso 2021-05-19 1969 if (!try_module_get(type->owner)) {
983c4fcb81d6bd Pablo Neira Ayuso 2021-05-19 1970 if (nla[NFTA_CHAIN_TYPE])
983c4fcb81d6bd Pablo Neira Ayuso 2021-05-19 1971 NL_SET_BAD_ATTR(extack, nla[NFTA_CHAIN_TYPE]);
508f8ccdab0ef5 Pablo Neira Ayuso 2016-08-02 1972 return -ENOENT;
983c4fcb81d6bd Pablo Neira Ayuso 2021-05-19 1973 }
508f8ccdab0ef5 Pablo Neira Ayuso 2016-08-02 1974
508f8ccdab0ef5 Pablo Neira Ayuso 2016-08-02 1975 hook->type = type;
508f8ccdab0ef5 Pablo Neira Ayuso 2016-08-02 1976
d54725cd11a57c Pablo Neira Ayuso 2019-10-16 1977 INIT_LIST_HEAD(&hook->list);
d3519cb89f6d59 Pablo Neira Ayuso 2020-10-08 1978 if (nft_base_chain_netdev(family, hook->num)) {
d54725cd11a57c Pablo Neira Ayuso 2019-10-16 1979 err = nft_chain_parse_netdev(net, ha, &hook->list);
d54725cd11a57c Pablo Neira Ayuso 2019-10-16 1980 if (err < 0) {
508f8ccdab0ef5 Pablo Neira Ayuso 2016-08-02 1981 module_put(type->owner);
d54725cd11a57c Pablo Neira Ayuso 2019-10-16 1982 return err;
508f8ccdab0ef5 Pablo Neira Ayuso 2016-08-02 1983 }
d54725cd11a57c Pablo Neira Ayuso 2019-10-16 1984 } else if (ha[NFTA_HOOK_DEV] || ha[NFTA_HOOK_DEVS]) {
508f8ccdab0ef5 Pablo Neira Ayuso 2016-08-02 1985 module_put(type->owner);
508f8ccdab0ef5 Pablo Neira Ayuso 2016-08-02 1986 return -EOPNOTSUPP;
508f8ccdab0ef5 Pablo Neira Ayuso 2016-08-02 1987 }
508f8ccdab0ef5 Pablo Neira Ayuso 2016-08-02 1988
508f8ccdab0ef5 Pablo Neira Ayuso 2016-08-02 1989 return 0;
508f8ccdab0ef5 Pablo Neira Ayuso 2016-08-02 1990 }
508f8ccdab0ef5 Pablo Neira Ayuso 2016-08-02 1991
508f8ccdab0ef5 Pablo Neira Ayuso 2016-08-02 1992 static void nft_chain_release_hook(struct nft_chain_hook *hook)
508f8ccdab0ef5 Pablo Neira Ayuso 2016-08-02 1993 {
d54725cd11a57c Pablo Neira Ayuso 2019-10-16 1994 struct nft_hook *h, *next;
d54725cd11a57c Pablo Neira Ayuso 2019-10-16 1995
d54725cd11a57c Pablo Neira Ayuso 2019-10-16 1996 list_for_each_entry_safe(h, next, &hook->list, list) {
d54725cd11a57c Pablo Neira Ayuso 2019-10-16 1997 list_del(&h->list);
d54725cd11a57c Pablo Neira Ayuso 2019-10-16 1998 kfree(h);
d54725cd11a57c Pablo Neira Ayuso 2019-10-16 1999 }
508f8ccdab0ef5 Pablo Neira Ayuso 2016-08-02 2000 module_put(hook->type->owner);
508f8ccdab0ef5 Pablo Neira Ayuso 2016-08-02 2001 }
508f8ccdab0ef5 Pablo Neira Ayuso 2016-08-02 2002
0cbc06b3faba75 Florian Westphal 2018-05-25 2003 struct nft_rules_old {
0cbc06b3faba75 Florian Westphal 2018-05-25 2004 struct rcu_head h;
2c865a8a28a10e Pablo Neira Ayuso 2022-01-09 2005 struct nft_rule_blob *blob;
0cbc06b3faba75 Florian Westphal 2018-05-25 2006 };
0cbc06b3faba75 Florian Westphal 2018-05-25 2007
2c865a8a28a10e Pablo Neira Ayuso 2022-01-09 2008 static void nft_last_rule(struct nft_rule_blob *blob, const void *ptr)
0cbc06b3faba75 Florian Westphal 2018-05-25 2009 {
2c865a8a28a10e Pablo Neira Ayuso 2022-01-09 2010 struct nft_rule_dp *prule;
2c865a8a28a10e Pablo Neira Ayuso 2022-01-09 2011
2c865a8a28a10e Pablo Neira Ayuso 2022-01-09 2012 prule = (struct nft_rule_dp *)ptr;
2c865a8a28a10e Pablo Neira Ayuso 2022-01-09 2013 prule->is_last = 1;
2c865a8a28a10e Pablo Neira Ayuso 2022-01-09 @2014 ptr += offsetof(struct nft_rule_dp, data);
2c865a8a28a10e Pablo Neira Ayuso 2022-01-09 2015 /* blob size does not include the trailer rule */
2c865a8a28a10e Pablo Neira Ayuso 2022-01-09 2016 }
2c865a8a28a10e Pablo Neira Ayuso 2022-01-09 2017
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
next reply other threads:[~2022-01-25 0:26 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-01-25 0:26 kernel test robot [this message]
2022-01-27 5:29 ` net/netfilter/nf_tables_api.c:2014:2: warning: Assignment of function parameter has no effect outside the function. Did you forget dereferencing it? [uselessAssignmentPtrArg] kernel test robot
2022-01-27 5:29 ` kernel test robot
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=202201250614.Oo7D9VA6-lkp@intel.com \
--to=lkp@intel.com \
--cc=kbuild@lists.01.org \
/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.