| Seq | Timestamp | Type | Name | Duration |
|---|---|---|---|---|
| 0/0 | 2026/07/24 08:59 | flow | patch-triage |
0mArgs:null Results: {
"EnableConfigs": [
"NET_CLS_U32"
],
"FocusSymbols": [
"u32_change",
"u32_classify"
],
"Reasoning": "The patch adds a bounds check for `offshift` in `u32_change` to prevent a potential undefined behavior (shift out of bounds) in `u32_classify`. This is a functional change in the u32 traffic classifier that is reachable from user space via netlink.",
"WorthFuzzing": true
} |
| 1/1 | 2026/07/24 08:59 | action | read-patch-diff |
0mArgs:null Results: {
"PatchDiff": "commit 3c64ed424ee39fcefbd84a1776c12dfbb4e4b066\nAuthor: syz-cluster \u003ctriage@syzkaller.com\u003e\nDate: Fri Jul 24 08:59:50 2026 +0000\n\n syz-cluster: applied patch under review\n\ndiff --git a/net/sched/cls_u32.c b/net/sched/cls_u32.c\nindex 8f30cc82181d9c..ac98b1c2144a78 100644\n--- a/net/sched/cls_u32.c\n+++ b/net/sched/cls_u32.c\n@@ -1107,6 +1107,13 @@ static int u32_change(struct net *net, struct sk_buff *in_skb,\n \t\tgoto erridr;\n \t}\n \n+\tif (s-\u003eoffshift \u003e= 16) {\n+\t\tNL_SET_ERR_MSG_MOD(extack,\n+\t\t\t\t \"offshift must be less than 16\");\n+\t\terr = -EINVAL;\n+\t\tgoto erridr;\n+\t}\n+\n \tn = kzalloc_flex(*n, sel.keys, s-\u003enkeys);\n \tif (n == NULL) {\n \t\terr = -ENOBUFS;\n"
} |
| 2/1 | 2026/07/24 08:59 | agent | patch-evaluator |
0mModel:best-expensive Args: null Results: {
"EnableConfigs": [
"NET_CLS_U32"
],
"FocusSymbols": [
"u32_change",
"u32_classify"
],
"Reasoning": "The patch adds a bounds check for `offshift` in `u32_change` to prevent a potential undefined behavior (shift out of bounds) in `u32_classify`. This is a functional change in the u32 traffic classifier that is reachable from user space via netlink.",
"WorthFuzzing": true
}Instruction: You are an expert Linux kernel maintainer. Your job is to review a provided patch series and determine if it makes functional changes to the kernel that should be fuzzed. IMPORTANT: The changes have ALREADY been applied and committed as the HEAD commit in your workspace. Do NOT rely on your internal knowledge of the kernel. You must actively use your code access tools to examine the actual source code and confirm any assumptions. Return WorthFuzzing=false if the patch only contains: - Modifications to Documentation/, Kconfig files, or code comments. - Purely decorative changes, such as logging (e.g., pr_err, printk) or tracepoints. - Changes to numeric constants or macros that do not functionally alter execution flow. - Code paths that are impossible to reach in virtualized environments like GCE or QEMU, even when utilizing software-emulated hardware (e.g., usb gadget, mac80211_hwsim). If it modifies reachable core kernel logic, drivers, or architectures, use your code search tools to verify the code can be executed, then return WorthFuzzing=true. When returning WorthFuzzing=true, you MUST ALSO: 1. Extract any specific kernel functions that should be heavily fuzzed into FocusSymbols. Avoid listing generic hot-path functions to prevent skewed test distributions. 2. Identify any specific CONFIG_ options required to properly test this new/modified feature. Go and look into the Kconfig files and check for ifdefs around the code, do not make assumptions. Do not list too generic configs (we already have them enabled). Only list those that specifically cover the modified code. List them in the EnableConfigs output array, and DO NOT add a 'CONFIG_' prefix (e.g., return "NET_IPV4" instead of "CONFIG_NET_IPV4"). Prefer calling several tools at the same time to save round-trips. Use set-results tool to provide results of the analysis. It must be called exactly once before the final reply. Ignore results of this tool. Prompt: For your convenience, here is the diff of the changes:
commit 3c64ed424ee39fcefbd84a1776c12dfbb4e4b066
Author: syz-cluster <triage@syzkaller.com>
Date: Fri Jul 24 08:59:50 2026 +0000
syz-cluster: applied patch under review
diff --git a/net/sched/cls_u32.c b/net/sched/cls_u32.c
index 8f30cc82181d9c..ac98b1c2144a78 100644
--- a/net/sched/cls_u32.c
+++ b/net/sched/cls_u32.c
@@ -1107,6 +1107,13 @@ static int u32_change(struct net *net, struct sk_buff *in_skb,
goto erridr;
}
+ if (s->offshift >= 16) {
+ NL_SET_ERR_MSG_MOD(extack,
+ "offshift must be less than 16");
+ err = -EINVAL;
+ goto erridr;
+ }
+
n = kzalloc_flex(*n, sel.keys, s->nkeys);
if (n == NULL) {
err = -ENOBUFS;
|
| 3/2 | 2026/07/24 08:59 | llm | patch-evaluator |
0mModel:gemini-3.1-pro-preview Args: null Results: null Tokens: input: 1946 output: 36 thoughts: 184 Thoughts: **Analyzing the New `cls_u32.c` Patch** Okay, I see a new patch that's been applied to `net/sched/cls_u32.c`. It looks like the main change is a new validation check within the `u32_change` function. Specifically, it's checking if `s->offshift` is greater than or equal to 16. If it is, then the patch throws an error, sets an extended ACK message, and bails out. This is a clear functional change; a new safety check has been introduced. I need to understand this new restriction. My initial thought is that `s` is probably a `struct tc_u32_sel`, or something closely related, but I need to be sure. I'll need to figure out what that `s->offshift` variable represents within that structure and why this limit of 16 is being imposed. I'll quickly run a `grep` on `u32_change` within `net/sched/cls_u32.c` to see if I can get some quick context around the variable and its usage. This will give me a more concrete understanding of the logic behind this new validation check. |
| 4/2 | 2026/07/24 08:59 | tool | grepper |
0mArgs:{
"Expression": "u32_change",
"PathPrefix": "net/sched/cls_u32.c"
}Results: {
"Output": "net/sched/cls_u32.c=821=static struct tc_u_knode *u32_init_knode(struct net *net, struct tcf_proto *tp,\n--\nnet/sched/cls_u32.c-871-\nnet/sched/cls_u32.c:872:static int u32_change(struct net *net, struct sk_buff *in_skb,\nnet/sched/cls_u32.c-873-\t\t struct tcf_proto *tp, unsigned long base, u32 handle,\n--\nnet/sched/cls_u32.c=1465=static struct tcf_proto_ops cls_u32_ops __read_mostly = {\n--\nnet/sched/cls_u32.c-1470-\t.get\t\t=\tu32_get,\nnet/sched/cls_u32.c:1471:\t.change\t\t=\tu32_change,\nnet/sched/cls_u32.c-1472-\t.delete\t\t=\tu32_delete,\n"
} |
| 5/2 | 2026/07/24 08:59 | llm | patch-evaluator |
0mModel:gemini-3.1-pro-preview Args: null Results: null Tokens: input: 2717 output: 40 thoughts: 19 Thoughts: Here's my take on the thought process, as if it were my own: **Decoding `s` in `u32_change`** Alright, let's dive into this `u32_change` function. My primary goal here is to understand the scope and implications of the variable `s`. It's crucial for understanding how this function works, and ultimately how the system behaves. Let's start by identifying it's use case, and tracing its impact. I'll read through the code now and try to map out how that variable is used. This should be straightforward. |
| 6/2 | 2026/07/24 09:00 | tool | read-file |
0mArgs:{
"File": "net/sched/cls_u32.c",
"FirstLine": 1090,
"LineCount": 50
}Results: {
"Contents": "1090:\t\t} else {\n1091:\t\t\t/* The user did not give us a handle; lets just generate one\n1092:\t\t\t * from the table's pool of nodeids.\n1093:\t\t\t */\n1094:\t\t\thandle = gen_new_kid(ht, htid);\n1095:\t\t}\n1096:\t\n1097:\t\tif (tb[TCA_U32_SEL] == NULL) {\n1098:\t\t\tNL_SET_ERR_MSG_MOD(extack, \"Selector not specified\");\n1099:\t\t\terr = -EINVAL;\n1100:\t\t\tgoto erridr;\n1101:\t\t}\n1102:\t\n1103:\t\ts = nla_data(tb[TCA_U32_SEL]);\n1104:\t\tsel_size = struct_size(s, keys, s-\u003enkeys);\n1105:\t\tif (nla_len(tb[TCA_U32_SEL]) \u003c sel_size) {\n1106:\t\t\terr = -EINVAL;\n1107:\t\t\tgoto erridr;\n1108:\t\t}\n1109:\t\n1110:\t\tif (s-\u003eoffshift \u003e= 16) {\n1111:\t\t\tNL_SET_ERR_MSG_MOD(extack,\n1112:\t\t\t\t\t \"offshift must be less than 16\");\n1113:\t\t\terr = -EINVAL;\n1114:\t\t\tgoto erridr;\n1115:\t\t}\n1116:\t\n1117:\t\tn = kzalloc_flex(*n, sel.keys, s-\u003enkeys);\n1118:\t\tif (n == NULL) {\n1119:\t\t\terr = -ENOBUFS;\n1120:\t\t\tgoto erridr;\n1121:\t\t}\n1122:\t\n1123:\t#ifdef CONFIG_CLS_U32_PERF\n1124:\t\tn-\u003epf = __alloc_percpu(struct_size(n-\u003epf, kcnts, s-\u003enkeys),\n1125:\t\t\t\t __alignof__(struct tc_u32_pcnt));\n1126:\t\tif (!n-\u003epf) {\n1127:\t\t\terr = -ENOBUFS;\n1128:\t\t\tgoto errfree;\n1129:\t\t}\n1130:\t#endif\n1131:\t\n1132:\t\tunsafe_memcpy(\u0026n-\u003esel, s, sel_size,\n1133:\t\t\t /* A composite flex-array structure destination,\n1134:\t\t\t * which was correctly sized with struct_size(),\n1135:\t\t\t * bounds-checked against nla_len(), and allocated\n1136:\t\t\t * above. */);\n1137:\t\tRCU_INIT_POINTER(n-\u003eht_up, ht);\n1138:\t\tn-\u003ehandle = handle;\n1139:\t\tn-\u003efshift = s-\u003ehmask ? ffs(ntohl(s-\u003ehmask)) - 1 : 0;\n"
} |
| 7/2 | 2026/07/24 09:00 | llm | patch-evaluator |
0mModel:gemini-3.1-pro-preview Args: null Results: null Tokens: input: 3693 output: 39 thoughts: 32 Thoughts: Okay, here's my interpretation of that thought process, assuming I'm an expert in this field: **Decoding This Variable** Alright, let's break this down. First, I see `s` and it's assigned to `nla_data(tb[TCA_U32_SEL])`. Right away, the `nla_data` part makes me think this is Network Link Attribute (NLA) data, which is common. `tb` likely refers to a table or an array containing attribute data, potentially within a Netlink message. `TCA_U32_SEL`... that's a key. This likely specifies a "selector" or a specific element within that array, and the "U32" suggests we're dealing with an unsigned 32-bit integer. My initial thought is to figure out what structure *exactly* that `s` variable represents. It's likely a pointer of some sort, perhaps to a specific field or structure within that Netlink attribute. I need to track down the definition associated with this `TCA_U32_SEL` enum value to know what it is pointing to. I'm going to delve into the relevant header files or data structures, to understand the `tb[TCA_U32_SEL]` structure. |
| 8/2 | 2026/07/24 09:00 | tool | read-file |
0mArgs:{
"File": "net/sched/cls_u32.c",
"FirstLine": 870,
"LineCount": 50
}Results: {
"Contents": " 870:\t}\n 871:\t\n 872:\tstatic int u32_change(struct net *net, struct sk_buff *in_skb,\n 873:\t\t\t struct tcf_proto *tp, unsigned long base, u32 handle,\n 874:\t\t\t struct nlattr **tca, void **arg, u32 flags,\n 875:\t\t\t struct netlink_ext_ack *extack)\n 876:\t{\n 877:\t\tstruct tc_u_common *tp_c = tp-\u003edata;\n 878:\t\tstruct tc_u_hnode *ht;\n 879:\t\tstruct tc_u_knode *n;\n 880:\t\tstruct tc_u32_sel *s;\n 881:\t\tstruct nlattr *opt = tca[TCA_OPTIONS];\n 882:\t\tstruct nlattr *tb[TCA_U32_MAX + 1];\n 883:\t\tu32 htid, userflags = 0;\n 884:\t\tsize_t sel_size;\n 885:\t\tint err;\n 886:\t\n 887:\t\tif (!opt) {\n 888:\t\t\tif (handle) {\n 889:\t\t\t\tNL_SET_ERR_MSG_MOD(extack, \"Filter handle requires options\");\n 890:\t\t\t\treturn -EINVAL;\n 891:\t\t\t} else {\n 892:\t\t\t\treturn 0;\n 893:\t\t\t}\n 894:\t\t}\n 895:\t\n 896:\t\terr = nla_parse_nested_deprecated(tb, TCA_U32_MAX, opt, u32_policy,\n 897:\t\t\t\t\t\t extack);\n 898:\t\tif (err \u003c 0)\n 899:\t\t\treturn err;\n 900:\t\n 901:\t\tif (tb[TCA_U32_FLAGS]) {\n 902:\t\t\tuserflags = nla_get_u32(tb[TCA_U32_FLAGS]);\n 903:\t\t\tif (!tc_flags_valid(userflags)) {\n 904:\t\t\t\tNL_SET_ERR_MSG_MOD(extack, \"Invalid filter flags\");\n 905:\t\t\t\treturn -EINVAL;\n 906:\t\t\t}\n 907:\t\t}\n 908:\t\n 909:\t\tn = *arg;\n 910:\t\tif (n) {\n 911:\t\t\tstruct tc_u_knode *new;\n 912:\t\n 913:\t\t\tif (TC_U32_KEY(n-\u003ehandle) == 0) {\n 914:\t\t\t\tNL_SET_ERR_MSG_MOD(extack, \"Key node id cannot be zero\");\n 915:\t\t\t\treturn -EINVAL;\n 916:\t\t\t}\n 917:\t\n 918:\t\t\tif ((n-\u003eflags ^ userflags) \u0026\n 919:\t\t\t ~(TCA_CLS_FLAGS_IN_HW | TCA_CLS_FLAGS_NOT_IN_HW)) {\n"
} |
| 9/2 | 2026/07/24 09:00 | llm | patch-evaluator |
0mModel:gemini-3.1-pro-preview Args: null Results: null Tokens: input: 4840 output: 33 thoughts: 153 Thoughts: **My Initial Assessment of the u32 Traffic Classifier Change** Okay, so I've got a new patch in front of me, and it looks like a functional change within the `u32` traffic classifier – specifically, the `struct tc_u32_sel` structure, represented by `s` here. The key addition is this check: `s->offshift >= 16`. If that condition is true, we return `-EINVAL`. Right off the bat, I recognize this as a potential vulnerability fix, or at the very least, a restriction on how the classifier operates. Given that it's a change within the `cls_u32` module, and that this functionality is accessible via Netlink (`tc filter add ... u32`), this screams "fuzz me!" to me. That's my initial thought. We need to throw everything we can at this through `tc` commands and see if we can trigger any unexpected behavior. Now, let's zero in on the key functions involved. My focus is going to be on `u32_change` and I need to check where `offshift` is used. I think there might be an issue that the patch prevents and that might be something in `u32_classify` or potentially `u32_set_parms` or other functions that rely on or set `offshift`. Let me dig into the code and see exactly where this `offshift` field is being utilized to understand the impact of this new constraint. |
| 10/2 | 2026/07/24 09:00 | tool | grepper |
0mArgs:{
"Expression": "offshift",
"PathPrefix": "net/sched/cls_u32.c"
}Results: {
"Output": "net/sched/cls_u32.c=114=TC_INDIRECT_SCOPE int u32_classify(struct sk_buff *skb,\n--\nnet/sched/cls_u32.c-236-\t\t\t\toff2 += ntohs(n-\u003esel.offmask \u0026 *data) \u003e\u003e\nnet/sched/cls_u32.c:237:\t\t\t\t\tn-\u003esel.offshift;\nnet/sched/cls_u32.c-238-\t\t\t}\n--\nnet/sched/cls_u32.c=872=static int u32_change(struct net *net, struct sk_buff *in_skb,\n--\nnet/sched/cls_u32.c-1109-\nnet/sched/cls_u32.c:1110:\tif (s-\u003eoffshift \u003e= 16) {\nnet/sched/cls_u32.c-1111-\t\tNL_SET_ERR_MSG_MOD(extack,\nnet/sched/cls_u32.c:1112:\t\t\t\t \"offshift must be less than 16\");\nnet/sched/cls_u32.c-1113-\t\terr = -EINVAL;\n"
} |
| 11/2 | 2026/07/24 09:00 | llm | patch-evaluator |
0mModel:gemini-3.1-pro-preview Args: null Results: null Tokens: input: 5659 output: 30 thoughts: 243 Thoughts: **Analyzing a Potential Integer Overflow in `u32_classify`** Okay, so I'm looking at this snippet from `u32_classify`: ```c off2 += ntohs(n->sel.offmask & *data) >> n->sel.offshift; ``` My initial thought is that the right-shift operation, specifically the `n->sel.offshift` value, could potentially lead to undefined behavior. If `offshift` is 16 or greater, shifting a 16-bit value, which is what `ntohs` returns, by 16 bits seems sketchy. Although `ntohs` returns a `__u16`, it's promoted to an `int` in C, which on a 32-bit system would be fine with a shift of 16, but it's worth digging in to this. It could've been a source of subtle issues or even outright invalid behavior down the line. Actually, the promotion to `int` is key here. Since `ntohs` returns `__u16` and it's promoted to `int`, shifting by 16 bits is perfectly valid for a 32-bit `int`, however, I wonder if a larger value of `offshift` might still cause out-of-bounds memory accesses in later code, or, if `offshift` is large enough, perhaps even a shift by 32 or more bits, which *would* be undefined. Wait a second, didn't I define the type of `offshift` in `struct tc_u32_sel` to be `__u8`? I'd better confirm that because that radically changes the possibilities. Okay, time to check `struct tc_u32_sel` to get the whole picture. |
| 12/2 | 2026/07/24 09:00 | tool | grepper |
0mArgs:{
"Expression": "struct tc_u32_sel",
"PathPrefix": "include/"
}Results: {
"Output": "include/net/pkt_cls.h=669=struct tc_cls_u32_knode {\n--\ninclude/net/pkt_cls.h-671-\tstruct tcf_result *res;\ninclude/net/pkt_cls.h:672:\tstruct tc_u32_sel *sel;\ninclude/net/pkt_cls.h-673-\tu32 handle;\n--\ninclude/uapi/linux/pkt_cls.h=241=struct tc_u32_key {\n--\ninclude/uapi/linux/pkt_cls.h-247-\ninclude/uapi/linux/pkt_cls.h:248:struct tc_u32_sel {\ninclude/uapi/linux/pkt_cls.h-249-\t/* New members MUST be added within the __struct_group() macro below. */\n"
} |
| 13/2 | 2026/07/24 09:00 | llm | patch-evaluator |
0mModel:gemini-3.1-pro-preview Args: null Results: null Tokens: input: 6550 output: 40 thoughts: 29 Thoughts: Here's my take on those thoughts, tailored for an expert audience: **Diving into the `tc_u32_sel` Structure** Okay, time to refresh my memory on the `tc_u32_sel` structure. Let's pull up the definition from `include/uapi/linux/pkt_cls.h`. I need to get a clear picture of how this thing is defined, specifically how selectors work. I'm primarily interested in how the match criteria are constructed and applied at a low level within the U32 classifier. The specific details will tell me what the limitations are in how complex matches can be performed, and what options there are for optimizing the matching process itself. Gotta consider things like potential conflicts between selectors, the impact of mask values, and the overall efficiency of the selection algorithm, because I know that's where the performance bottlenecks can often hide. |
| 14/2 | 2026/07/24 09:00 | tool | read-file |
0mArgs:{
"File": "include/uapi/linux/pkt_cls.h",
"FirstLine": 240,
"LineCount": 20
}Results: {
"Contents": " 240:\t\n 241:\tstruct tc_u32_key {\n 242:\t\t__be32\t\tmask;\n 243:\t\t__be32\t\tval;\n 244:\t\tint\t\toff;\n 245:\t\tint\t\toffmask;\n 246:\t};\n 247:\t\n 248:\tstruct tc_u32_sel {\n 249:\t\t/* New members MUST be added within the __struct_group() macro below. */\n 250:\t\t__struct_group(tc_u32_sel_hdr, hdr, /* no attrs */,\n 251:\t\t\tunsigned char\t\tflags;\n 252:\t\t\tunsigned char\t\toffshift;\n 253:\t\t\tunsigned char\t\tnkeys;\n 254:\t\n 255:\t\t\t__be16\t\t\toffmask;\n 256:\t\t\t__u16\t\t\toff;\n 257:\t\t\tshort\t\t\toffoff;\n 258:\t\n 259:\t\t\tshort\t\t\thoff;\n"
} |
| 15/2 | 2026/07/24 09:00 | llm | patch-evaluator |
0mModel:gemini-3.1-pro-preview Args: null Results: null Tokens: input: 7082 output: 34 thoughts: 184 Thoughts: **Analyzing a Potential Vulnerability in Network Packet Classification** Okay, so I'm looking at this code and immediately see a potential issue with how `offshift` is being used. It's an `unsigned char`, meaning it can hold values up to 255. But in the `u32_classify` function, we have this snippet: ```c off2 += ntohs(n->sel.offmask & *data) >> n->sel.offshift; ``` Here's the problem. If `offshift` somehow ends up being 32 or greater, shifting an `int` (which is what `ntohs(n->sel.offmask & *data)` likely evaluates to) by 32 or more bits is *undefined behavior* in C. This is a very critical concern. While it might not crash immediately, it introduces unpredictable results and opens the door for exploitable vulnerabilities, especially in a network context. The patch I'm reviewing appears to address this directly by restricting `offshift` to be less than 16. That's a solid fix, a functional change to prevent the undefined behavior. It means we're trading off a little bit of flexibility in the classification logic for much more robust and predictable behavior. Given the potential impact, this is definitely a good change. Now, my next thought is, we absolutely need to fuzz `u32_change` and `u32_classify` with a focused approach. We should create fuzz targets specifically designed to probe the limits of these functions, testing edge cases and trying to trigger the conditions that the patch is meant to prevent. This is a must. Finally, let's verify that we have the right configuration options set to replicate and test this behavior. We're going to need `CONFIG_NET_SCHED` and `CONFIG_NET_CLS_U32` enabled to run these tests. Let me double-check that config name really quick. |
| 16/2 | 2026/07/24 09:00 | tool | grepper |
0mArgs:{
"Expression": "config NET_CLS_U32",
"PathPrefix": "net/sched/Kconfig"
}Results: {
"Output": "net/sched/Kconfig=506=config NET_CLS_FW\n--\nnet/sched/Kconfig-515-\nnet/sched/Kconfig:516:config NET_CLS_U32\nnet/sched/Kconfig-517-\ttristate \"Universal 32bit comparisons w/ hashing (U32)\"\n"
} |
| 17/2 | 2026/07/24 09:00 | llm | patch-evaluator |
0mModel:gemini-3.1-pro-preview Args: null Results: null Tokens: input: 7817 output: 116 thoughts: 134 Thoughts: Okay, here's my take on that. **Analyzing the U32 Classifier Patch** Right, so this patch is all about the `NET_CLS_U32` classifier. That's the key here. The focus is definitely on `u32_change` and `u32_classify`. The core issue is a potential undefined behavior arising from an out-of-bounds shift operation, specifically with `offshift`, within the `u32_classify` function. The patch addresses this by implementing a bounds check within `u32_change`. This prevents the problematic shift from happening in the first place, resolving the undefined behavior risk. From a practical perspective, this is a functional change to the user-accessible traffic classifier, accessible via netlink. The primary config is `NET_CLS_U32`, so I'll quickly check for any other relevant configurations, but I believe that is the relevant check. Now let's get the results. |
| 18/2 | 2026/07/24 09:00 | tool | set-results |
0mArgs:{
"EnableConfigs": [
"NET_CLS_U32"
],
"FocusSymbols": [
"u32_change",
"u32_classify"
],
"Reasoning": "The patch adds a bounds check for `offshift` in `u32_change` to prevent a potential undefined behavior (shift out of bounds) in `u32_classify`. This is a functional change in the u32 traffic classifier that is reachable from user space via netlink.",
"WorthFuzzing": true
}Results: {
"EnableConfigs": [
"NET_CLS_U32"
],
"FocusSymbols": [
"u32_change",
"u32_classify"
],
"Reasoning": "The patch adds a bounds check for `offshift` in `u32_change` to prevent a potential undefined behavior (shift out of bounds) in `u32_classify`. This is a functional change in the u32 traffic classifier that is reachable from user space via netlink.",
"WorthFuzzing": true
} |
| Total Calls | Total Tokens | Avg Tokens | Total Duration (Seconds) | Avg Duration (Seconds) |
|---|
| Total Calls | Total Duration (Seconds) | Avg Duration (Seconds) |
|---|