diff for duplicates of <48361920.9090309@cn.fujitsu.com> diff --git a/a/1.txt b/N1/1.txt index e747e14..219ed55 100644 --- a/a/1.txt +++ b/N1/1.txt @@ -1,11 +1,11 @@ RFC4340 said: 8.5. Pseudocode ... - If P.type is not Data, Ack, or DataAck and P.X = 0 (the packet + If P.type is not Data, Ack, or DataAck and P.X == 0 (the packet has short sequence numbers), drop packet and return But DCCP has some mistake to handle short sequence numbers packet, now -it drop packet only if P.type is Data, Ack, or DataAck and P.X = 0. +it drop packet only if P.type is Data, Ack, or DataAck and P.X == 0. This patch fixed this problem. @@ -15,13 +15,13 @@ Acked-by: Gerrit Renker <gerrit@erg.abdn.ac.uk> --- a/net/dccp/ipv4.c 2008-05-18 11:54:29.000000000 -0400 +++ b/net/dccp/ipv4.c 2008-05-18 11:55:51.000000000 -0400 @@ -741,8 +741,8 @@ int dccp_invalid_packet(struct sk_buff * - * If P.type is not Data, Ack, or DataAck and P.X = 0 (the packet + * If P.type is not Data, Ack, or DataAck and P.X == 0 (the packet * has short sequence numbers), drop packet and return */ - if (dh->dccph_type >= DCCP_PKT_DATA && -- dh->dccph_type <= DCCP_PKT_DATAACK && dh->dccph_x = 0) { +- dh->dccph_type <= DCCP_PKT_DATAACK && dh->dccph_x == 0) { + if ((dh->dccph_type < DCCP_PKT_DATA || -+ dh->dccph_type > DCCP_PKT_DATAACK) && dh->dccph_x = 0) { - DCCP_WARN("P.type (%s) not Data || [Data]Ack, while P.X = 0\n", ++ dh->dccph_type > DCCP_PKT_DATAACK) && dh->dccph_x == 0) { + DCCP_WARN("P.type (%s) not Data || [Data]Ack, while P.X == 0\n", dccp_packet_name(dh->dccph_type)); return 1; diff --git a/a/content_digest b/N1/content_digest index c66a3f9..a61a599 100644 --- a/a/content_digest +++ b/N1/content_digest @@ -1,18 +1,23 @@ "ref\04834EA23.3070309@cn.fujitsu.com\0" + "ref\020080522090720.GA4827@gerrit.erg.abdn.ac.uk\0" "From\0Wei Yongjun <yjwei@cn.fujitsu.com>\0" "Subject\0[PATCH] DCCP: Fix to handle short sequence numbers packet correctly\0" - "Date\0Fri, 23 May 2008 01:08:48 +0000\0" - "To\0dccp@vger.kernel.org\0" + "Date\0Fri, 23 May 2008 09:08:48 +0800\0" + "To\0Gerrit Renker <gerrit@erg.abdn.ac.uk>" + " David Miller <davem@davemloft.net>\0" + "Cc\0Wei Yongjun <yjwei@cn.fujitsu.com>" + dccp@vger.kernel.org + " netdev@vger.kernel.org\0" "\00:1\0" "b\0" "RFC4340 said:\n" " 8.5. Pseudocode\n" " ...\n" - " If P.type is not Data, Ack, or DataAck and P.X = 0 (the packet\n" + " If P.type is not Data, Ack, or DataAck and P.X == 0 (the packet\n" " has short sequence numbers), drop packet and return\n" "\n" "But DCCP has some mistake to handle short sequence numbers packet, now \n" - "it drop packet only if P.type is Data, Ack, or DataAck and P.X = 0.\n" + "it drop packet only if P.type is Data, Ack, or DataAck and P.X == 0.\n" "\n" "This patch fixed this problem.\n" "\n" @@ -22,15 +27,15 @@ "--- a/net/dccp/ipv4.c\t2008-05-18 11:54:29.000000000 -0400\n" "+++ b/net/dccp/ipv4.c\t2008-05-18 11:55:51.000000000 -0400\n" "@@ -741,8 +741,8 @@ int dccp_invalid_packet(struct sk_buff *\n" - " \t * If P.type is not Data, Ack, or DataAck and P.X = 0 (the packet\n" + " \t * If P.type is not Data, Ack, or DataAck and P.X == 0 (the packet\n" " \t * has short sequence numbers), drop packet and return\n" " \t */\n" "-\tif (dh->dccph_type >= DCCP_PKT_DATA &&\n" - "-\t dh->dccph_type <= DCCP_PKT_DATAACK && dh->dccph_x = 0) {\n" + "-\t dh->dccph_type <= DCCP_PKT_DATAACK && dh->dccph_x == 0) {\n" "+\tif ((dh->dccph_type < DCCP_PKT_DATA ||\n" - "+\t dh->dccph_type > DCCP_PKT_DATAACK) && dh->dccph_x = 0) {\n" - " \t\tDCCP_WARN(\"P.type (%s) not Data || [Data]Ack, while P.X = 0\\n\",\n" + "+\t dh->dccph_type > DCCP_PKT_DATAACK) && dh->dccph_x == 0) {\n" + " \t\tDCCP_WARN(\"P.type (%s) not Data || [Data]Ack, while P.X == 0\\n\",\n" " \t\t\t dccp_packet_name(dh->dccph_type));\n" " \t\treturn 1;" -b947efba089f92d7b67c9ae8b78d338d748d9848a373fdabe4738a691805a11b +c24aa95d28814cbca131dadd59a74ace4350496575f59300f35abeb14b8cc39b
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.