diff options
author | Daniel Borkmann <dborkman@redhat.com> | 2013-08-21 13:47:59 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2013-08-22 19:19:50 -0400 |
commit | d8cdeda6ddbcb33debbb87590a7d42ff7f5b5cfd (patch) | |
tree | 19bb3437ee5e71bbc85a57186a007122e8d6fab5 | |
parent | b4c1c1d03842e6b24e87e48c07769e105df99985 (diff) |
net: tcp_probe: kprobes: adapt jtcp_rcv_established signature
This patches fixes a rather unproblematic function signature mismatch
as the const specifier was missing for the th variable; and next to
that it adds a build-time assertion so that future function signature
mismatches for kprobes will not end badly, similarly as commit 22222997
("net: sctp: add build check for sctp_sf_eat_sack_6_2/jsctp_sf_eat_sack")
did it for SCTP.
Signed-off-by: Daniel Borkmann <dborkman@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | net/ipv4/tcp_probe.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/net/ipv4/tcp_probe.c b/net/ipv4/tcp_probe.c index fae788b5b03e..a2392f48ba35 100644 --- a/net/ipv4/tcp_probe.c +++ b/net/ipv4/tcp_probe.c | |||
@@ -92,7 +92,7 @@ static inline int tcp_probe_avail(void) | |||
92 | * Note: arguments must match tcp_rcv_established()! | 92 | * Note: arguments must match tcp_rcv_established()! |
93 | */ | 93 | */ |
94 | static int jtcp_rcv_established(struct sock *sk, struct sk_buff *skb, | 94 | static int jtcp_rcv_established(struct sock *sk, struct sk_buff *skb, |
95 | struct tcphdr *th, unsigned int len) | 95 | const struct tcphdr *th, unsigned int len) |
96 | { | 96 | { |
97 | const struct tcp_sock *tp = tcp_sk(sk); | 97 | const struct tcp_sock *tp = tcp_sk(sk); |
98 | const struct inet_sock *inet = inet_sk(sk); | 98 | const struct inet_sock *inet = inet_sk(sk); |
@@ -225,6 +225,13 @@ static __init int tcpprobe_init(void) | |||
225 | { | 225 | { |
226 | int ret = -ENOMEM; | 226 | int ret = -ENOMEM; |
227 | 227 | ||
228 | /* Warning: if the function signature of tcp_rcv_established, | ||
229 | * has been changed, you also have to change the signature of | ||
230 | * jtcp_rcv_established, otherwise you end up right here! | ||
231 | */ | ||
232 | BUILD_BUG_ON(__same_type(tcp_rcv_established, | ||
233 | jtcp_rcv_established) == 0); | ||
234 | |||
228 | init_waitqueue_head(&tcp_probe.wait); | 235 | init_waitqueue_head(&tcp_probe.wait); |
229 | spin_lock_init(&tcp_probe.lock); | 236 | spin_lock_init(&tcp_probe.lock); |
230 | 237 | ||