From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: net/sched/sch_cake.c:1094 cake_tcph_may_drop() warn: masked condition '(((tcph)->words[3]) & (__builtin_bswap32(((255787008))))) != 4096' is always true.
Date: Sat, 04 Dec 2021 03:43:41 +0800 [thread overview]
Message-ID: <202112040327.ywgPBpDI-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 8025 bytes --]
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Luc Van Oostenryck <luc.vanoostenryck@gmail.com>
CC: Andrew Morton <akpm@linux-foundation.org>
CC: Linux Memory Management List <linux-mm@kvack.org>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 5f58da2befa58edf3a70b91ed87ed9bf77f1e70e
commit: d991bb1c8da842a2a0b9dc83b1005e655783f861 include/linux/compiler-gcc.h: sparse can do constant folding of __builtin_bswap*()
date: 7 months ago
:::::: branch date: 21 hours ago
:::::: commit date: 7 months ago
config: x86_64-randconfig-m001-20211203 (https://download.01.org/0day-ci/archive/20211204/202112040327.ywgPBpDI-lkp(a)intel.com/config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
New smatch warnings:
net/sched/sch_cake.c:1094 cake_tcph_may_drop() warn: masked condition '(((tcph)->words[3]) & (__builtin_bswap32(((255787008))))) != 4096' is always true.
Old smatch warnings:
net/sched/sch_cake.c:776 cake_hash() error: buffer overflow 'q->flows' 1024 <= 1030
net/sched/sch_cake.c:788 cake_hash() error: buffer overflow 'q->flows' 1024 <= 1030
net/sched/sch_cake.c:811 cake_hash() error: buffer overflow 'q->hosts' 1024 <= 1030
net/sched/sch_cake.c:814 cake_hash() error: buffer overflow 'q->hosts' 1024 <= 1030
net/sched/sch_cake.c:834 cake_hash() error: buffer overflow 'q->hosts' 1024 <= 1030
net/sched/sch_cake.c:837 cake_hash() error: buffer overflow 'q->hosts' 1024 <= 1030
net/sched/sch_cake.c:1353 cake_overhead() warn: should 'off << 16' be a 64 bit type?
vim +1094 net/sched/sch_cake.c
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1076
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1077 static bool cake_tcph_may_drop(const struct tcphdr *tcph,
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1078 u32 tstamp_new, u32 tsecr_new)
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1079 {
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1080 /* inspired by tcp_parse_options in tcp_input.c */
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1081 int length = __tcp_hdrlen(tcph) - sizeof(struct tcphdr);
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1082 const u8 *ptr = (const u8 *)(tcph + 1);
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1083 u32 tstamp, tsecr;
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1084
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1085 /* 3 reserved flags must be unset to avoid future breakage
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1086 * ACK must be set
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1087 * ECE/CWR are handled separately
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1088 * All other flags URG/PSH/RST/SYN/FIN must be unset
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1089 * 0x0FFF0000 = all TCP flags (confirm ACK=1, others zero)
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1090 * 0x00C00000 = CWR/ECE (handled separately)
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1091 * 0x0F3F0000 = 0x0FFF0000 & ~0x00C00000
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1092 */
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1093 if (((tcp_flag_word(tcph) &
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 @1094 cpu_to_be32(0x0F3F0000)) != TCP_FLAG_ACK))
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1095 return false;
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1096
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1097 while (length > 0) {
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1098 int opcode = *ptr++;
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1099 int opsize;
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1100
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1101 if (opcode == TCPOPT_EOL)
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1102 break;
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1103 if (opcode == TCPOPT_NOP) {
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1104 length--;
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1105 continue;
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1106 }
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1107 opsize = *ptr++;
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1108 if (opsize < 2 || opsize > length)
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1109 break;
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1110
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1111 switch (opcode) {
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1112 case TCPOPT_MD5SIG: /* doesn't influence state */
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1113 break;
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1114
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1115 case TCPOPT_SACK: /* stricter checking performed later */
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1116 if (opsize % 8 != 2)
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1117 return false;
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1118 break;
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1119
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1120 case TCPOPT_TIMESTAMP:
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1121 /* only drop timestamps lower than new */
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1122 if (opsize != TCPOLEN_TIMESTAMP)
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1123 return false;
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1124 tstamp = get_unaligned_be32(ptr);
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1125 tsecr = get_unaligned_be32(ptr + 4);
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1126 if (after(tstamp, tstamp_new) ||
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1127 after(tsecr, tsecr_new))
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1128 return false;
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1129 break;
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1130
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1131 case TCPOPT_MSS: /* these should only be set on SYN */
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1132 case TCPOPT_WINDOW:
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1133 case TCPOPT_SACK_PERM:
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1134 case TCPOPT_FASTOPEN:
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1135 case TCPOPT_EXP:
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1136 default: /* don't drop if any unknown options are present */
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1137 return false;
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1138 }
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1139
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1140 ptr += opsize - 2;
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1141 length -= opsize;
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1142 }
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1143
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1144 return true;
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1145 }
8b7138814f2993 Toke Høiland-Jørgensen 2018-07-06 1146
:::::: The code at line 1094 was first introduced by commit
:::::: 8b7138814f29933898ecd31dfc83e35a30ee69f5 sch_cake: Add optional ACK filter
:::::: TO: Toke Høiland-Jørgensen <toke@toke.dk>
:::::: CC: David S. Miller <davem@davemloft.net>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
next reply other threads:[~2021-12-03 19:43 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-03 19:43 kernel test robot [this message]
-- strict thread matches above, loose matches on Subject: below --
2021-12-04 11:22 net/sched/sch_cake.c:1094 cake_tcph_may_drop() warn: masked condition '(((tcph)->words[3]) & (__builtin_bswap32(((255787008))))) != 4096' is always true kernel test robot
2021-11-10 19:28 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=202112040327.ywgPBpDI-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.