From: Gerrit Renker <[EMAIL PROTECTED]>

[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 <[EMAIL PROTECTED]>
Signed-off-by: Arnaldo Carvalho de Melo <[EMAIL PROTECTED]>
---
 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 33ce737..7caa7f5 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)
         * FIXME: what if rebuild_header fails?
         * Should we be doing a rebuild_header here?
         */
-       int err = inet_sk_rebuild_header(sk);
+       int err = inet_csk(sk)->icsk_af_ops->rebuild_header(sk);
 
        if (err != 0)
                return err;
-- 
1.5.3.4

-
To unsubscribe from this list: send the line "unsubscribe dccp" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to