diff options
author | Gerrit Renker <gerrit@erg.abdn.ac.uk> | 2007-11-28 03:35:08 -0500 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2008-01-28 17:55:12 -0500 |
commit | f53dc67c5e7babafe239b93a11678b0e05bead51 (patch) | |
tree | 50737228e796667e8c24e9a821cb11bca372516a | |
parent | 276f2edc52e309b38a216245952e05880e182c83 (diff) |
[DCCP]: Use AF-independent rebuild_header routine
This fixes a nasty bug: dccp_send_reset() is called by both DCCPv4 and DCCPv6, but uses
inet_sk_rebuild_header() in each case. This leads to unpredictable and weird behaviour:
under some conditions, DCCPv6 Resets were sent, in other not.
The fix is to use the AF-independent rebuild_header routine.
Signed-off-by: Gerrit Renker <gerrit@erg.abdn.ac.uk>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
-rw-r--r-- | net/dccp/output.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/dccp/output.c b/net/dccp/output.c index 33ce737ef3a8..7caa7f57bb7e 100644 --- a/net/dccp/output.c +++ b/net/dccp/output.c | |||
@@ -391,7 +391,7 @@ int dccp_send_reset(struct sock *sk, enum dccp_reset_codes code) | |||
391 | * FIXME: what if rebuild_header fails? | 391 | * FIXME: what if rebuild_header fails? |
392 | * Should we be doing a rebuild_header here? | 392 | * Should we be doing a rebuild_header here? |
393 | */ | 393 | */ |
394 | int err = inet_sk_rebuild_header(sk); | 394 | int err = inet_csk(sk)->icsk_af_ops->rebuild_header(sk); |
395 | 395 | ||
396 | if (err != 0) | 396 | if (err != 0) |
397 | return err; | 397 | return err; |