diff options
| author | saturneric <[email protected]> | 2025-12-01 11:31:10 +0000 |
|---|---|---|
| committer | saturneric <[email protected]> | 2025-12-01 11:31:10 +0000 |
| commit | fa2a26ee8b4693d3733a7d58863cb38cb0e8680e (patch) | |
| tree | 01f99691b8e34c516e435932f1353ad673bedf2e /net/sched/em_text.c | |
| parent | fix(driver): sync specific drivers from rpi upstream (diff) | |
| parent | Linux 6.18 (diff) | |
| download | kernel-main.tar.gz kernel-main.zip | |
Merge tag 'v6.18' into linux-6.18.yHEADmainlinux-6.18.y
Linux 6.18
Diffstat (limited to 'net/sched/em_text.c')
| -rw-r--r-- | net/sched/em_text.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/net/sched/em_text.c b/net/sched/em_text.c index 6b3d0af72c39..692e2be1793e 100644 --- a/net/sched/em_text.c +++ b/net/sched/em_text.c @@ -29,12 +29,19 @@ static int em_text_match(struct sk_buff *skb, struct tcf_ematch *m, struct tcf_pkt_info *info) { struct text_match *tm = EM_TEXT_PRIV(m); + unsigned char *ptr; int from, to; - from = tcf_get_base_ptr(skb, tm->from_layer) - skb->data; + ptr = tcf_get_base_ptr(skb, tm->from_layer); + if (!ptr) + return 0; + from = ptr - skb->data; from += tm->from_offset; - to = tcf_get_base_ptr(skb, tm->to_layer) - skb->data; + ptr = tcf_get_base_ptr(skb, tm->to_layer); + if (!ptr) + return 0; + to = ptr - skb->data; to += tm->to_offset; return skb_find_text(skb, from, to, tm->config) != UINT_MAX; |
