Patch to fix TCP connection and accept problems in 2.0.3x

Philip Gladstone (philip@raptor.com)
Thu, 10 Sep 1998 18:57:22 -0400


This is a cryptographically signed message in MIME format.

--------------msD96EB4EA62C676DA1D0A48AB
Content-Type: multipart/mixed; boundary="------------59A1E02F78F5A9D9CF42475F"

This is a multi-part message in MIME format.
--------------59A1E02F78F5A9D9CF42475F
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7bit

Attached is the small patch to fix the problems that I was having
earlier on today. This makes it so that accept will only get
real connections and not ones that never opened properly. It will
still get connections that are closing by the time that the accept
was called, but that's OK. Also, accept will now fail if the
implicit getpeername fails.

Philip

-- 
Philip Gladstone                           +1 781 530 2461
Raptor Systems / Axent Technologies 
Waltham, MA         		    http://www.raptor.com/
--------------59A1E02F78F5A9D9CF42475F
Content-Type: text/plain; charset=us-ascii; name="p9_accept.rpf"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline; filename="p9_accept.rpf"

--- linux/net/ipv4/tcp.c.zz Thu Sep 10 10:11:15 1998 +++ linux/net/ipv4/tcp.c Thu Sep 10 10:12:53 1998 @@ -681,7 +681,8 @@ return NULL; do { - if(p->sk->state == TCP_ESTABLISHED || p->sk->state >= TCP_FIN_WAIT1) + if(p->sk->state == TCP_ESTABLISHED + || (p->sk->state >= TCP_FIN_WAIT1 && tcp_connected(p->sk->state))) return p; p=p->next; } --- linux/net/socket.c.zz Thu Sep 10 10:13:05 1998 +++ linux/net/socket.c Thu Sep 10 10:16:16 1998 @@ -768,6 +768,16 @@ return(i); } + if (upeer_sockaddr) + { + i = newsock->ops->getname(newsock, (struct sockaddr *)address, &len, 1); + if (i < 0) { + sock_release(newsock); + return i; + } + move_addr_to_user(address,len, upeer_sockaddr, upeer_addrlen); + } + if ((fd = get_fd(SOCK_INODE(newsock))) < 0) { sock_release(newsock); @@ -775,11 +785,6 @@ } newsock->file=current->files->fd[fd]; - if (upeer_sockaddr) - { - newsock->ops->getname(newsock, (struct sockaddr *)address, &len, 1); - move_addr_to_user(address,len, upeer_sockaddr, upeer_addrlen); - } return(fd); }

--------------59A1E02F78F5A9D9CF42475F--

--------------msD96EB4EA62C676DA1D0A48AB Content-Type: application/x-pkcs7-signature; name="smime.p7s" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="smime.p7s" Content-Description: S/MIME Cryptographic Signature

MIILogYJKoZIhvcNAQcCoIILkzCCC48CAQExCzAJBgUrDgMCGgUAMAsGCSqGSIb3DQEHAaCC CVgwggLXMIICQKADAgECAgIwtDANBgkqhkiG9w0BAQQFADCByDELMAkGA1UEBhMCWkExFTAT BgNVBAgTDFdlc3Rlcm4gQ2FwZTEUMBIGA1UEBxMLRHVyYmFudmlsbGUxGjAYBgNVBAoTEVRo YXd0ZSBDb25zdWx0aW5nMTMwMQYDVQQLEypDZXJ0aWZpY2F0ZSBTZXJ2aWNlcyBSU0EgSUsg MTk5OC4yLjI1IDg6MzUxOzA5BgNVBAMTMlRoYXd0ZSBQZXJzb25hbCBGcmVlbWFpbCBSU0Eg SXNzdWluZyBLZXkgMTk5OC4yLjI1MB4XDTk4MDgxMjE0NDIyOVoXDTk5MDgxMjE0NDIyOVow QzEfMB0GA1UEAxMWVGhhd3RlIEZyZWVtYWlsIE1lbWJlcjEgMB4GCSqGSIb3DQEJARYRcGhp bGlwQHJhcHRvci5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAONqzM373SGsMZ5C X1WU1vOr8pZFVRBVJC/WEfc5sR+Q4YAjRk5F4Yww6cHAXtTiptaSWcgK+dli46/5Sy60UX2s iVcl8i6pmcQ/m+kFodrJ1GjZd9SU2+IMnY7liBP2sdwAB02G9EX2B43nAh9/Y2Xl4T8uGV3L oz6CwP5YmUV1AgMBAAGjVDBSMBEGCWCGSAGG+EIBAQQEAwIFoDAOBgNVHQ8BAf8EBAMCBaAw DAYDVR0TAQH/BAIwADAfBgNVHSMEGDAWgBTtNBduDiteS4eYkbg3p5i/kh+scjANBgkqhkiG 9w0BAQQFAAOBgQBZPzaRk5KnLZCwvJy/y/OaSAfGp1h/c8agEBoLclt3CSytNnT3FVZLq5w/ R0O9wIu8er/eivXt1CvWs/wYpqZpszhmbaIreRZHY9A93G/Zavv7yyMBpK5OVYpkAMUt4rAc 7/twlNMo/493FEBSAiYjdbhIqGOyBikq/R3iyFiyUjCCA0gwggKxoAMCAQICAQgwDQYJKoZI hvcNAQEEBQAwgdExCzAJBgNVBAYTAlpBMRUwEwYDVQQIEwxXZXN0ZXJuIENhcGUxEjAQBgNV BAcTCUNhcGUgVG93bjEaMBgGA1UEChMRVGhhd3RlIENvbnN1bHRpbmcxKDAmBgNVBAsTH0Nl cnRpZmljYXRpb24gU2VydmljZXMgRGl2aXNpb24xJDAiBgNVBAMTG1RoYXd0ZSBQZXJzb25h bCBGcmVlbWFpbCBDQTErMCkGCSqGSIb3DQEJARYccGVyc29uYWwtZnJlZW1haWxAdGhhd3Rl LmNvbTAeFw05ODAyMjUwODM1MzNaFw0wMDAyMjUwODM1MzNaMIHIMQswCQYDVQQGEwJaQTEV MBMGA1UECBMMV2VzdGVybiBDYXBlMRQwEgYDVQQHEwtEdXJiYW52aWxsZTEaMBgGA1UEChMR VGhhd3RlIENvbnN1bHRpbmcxMzAxBgNVBAsTKkNlcnRpZmljYXRlIFNlcnZpY2VzIFJTQSBJ SyAxOTk4LjIuMjUgODozNTE7MDkGA1UEAxMyVGhhd3RlIFBlcnNvbmFsIEZyZWVtYWlsIFJT QSBJc3N1aW5nIEtleSAxOTk4LjIuMjUwgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMcx w8QbmSNy0lGFlUzjWZLk6GyBtfQbXwnmxK2zRG+qONdX5LDFy7p0rkxhIyR2BvjZXQ2KKLK0 K+0Nu1Ik9LfFSaeDY/wKBLDvgSj35pHGTZfuknYmYshjN3Y8sZIP3K1SBopxxTcxaobbvQhp KFn87cd9JmfdTd7TxQL+d7bhAgMBAAGjNzA1MBIGA1UdEwEB/wQIMAYBAf8CAQAwHwYDVR0j BBgwFqAUcknCczTGVfQLdnKBfnf0h+fGsg4wDQYJKoZIhvcNAQEEBQADgYEAQurti2F+odRc Uqk8vZ6ceegJixKBrY8dWkbt8SUmW8iu/XohFs2gHjuXM4P7TjcqKJemSPUoGAIkfIB7U1C1 +2+a/G2qXCZFqC82IljTGwIDH+6UOfD+NFqISxs9jPPXftOfcFt29tjE4rY8JJ0JJYxZsdSL 8/wEgg6eKYZsxf8wggMtMIIClqADAgECAgEAMA0GCSqGSIb3DQEBBAUAMIHRMQswCQYDVQQG EwJaQTEVMBMGA1UECBMMV2VzdGVybiBDYXBlMRIwEAYDVQQHEwlDYXBlIFRvd24xGjAYBgNV BAoTEVRoYXd0ZSBDb25zdWx0aW5nMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2Vz IERpdmlzaW9uMSQwIgYDVQQDExtUaGF3dGUgUGVyc29uYWwgRnJlZW1haWwgQ0ExKzApBgkq hkiG9w0BCQEWHHBlcnNvbmFsLWZyZWVtYWlsQHRoYXd0ZS5jb20wHhcNOTYwMTAxMDAwMDAw WhcNMjAxMjMxMjM1OTU5WjCB0TELMAkGA1UEBhMCWkExFTATBgNVBAgTDFdlc3Rlcm4gQ2Fw ZTESMBAGA1UEBxMJQ2FwZSBUb3duMRowGAYDVQQKExFUaGF3dGUgQ29uc3VsdGluZzEoMCYG A1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjEkMCIGA1UEAxMbVGhhd3Rl IFBlcnNvbmFsIEZyZWVtYWlsIENBMSswKQYJKoZIhvcNAQkBFhxwZXJzb25hbC1mcmVlbWFp bEB0aGF3dGUuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDUadfUsJRkW3HpR9gM UbbqcpGwhF59LQ2PexLfhSV1KHQ6QixjJ5+Ve0vvfhmHHYbqo925zpZkGsIUbkSsfOaP6E0P cR9AOKYAo4d49vmUhl6t6sBeduvZFKNdbnp8DKVLVX8GGSl/npom1Wq7OCQIapjHsdqjmJH9 edvlWsQcuQIDAQABoxMwETAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBBAUAA4GBAMfs kn5O+PWWpWdiKqTwTRFg0G+NYFhhrCa7UjVcCM8w+6hKloofYkIjjBcP9LpknBesRynfnZhe 0mxgcVyirNx54+duAEcftQ0o6AKd5Jr9E/Sm2Xyx+NxfIyYJkYBz0BQb3kOpgyXy5pwvFcr+ pquKB3WLDN1RhGvk+NHOd6KBMYICEjCCAg4CAQEwgc8wgcgxCzAJBgNVBAYTAlpBMRUwEwYD VQQIEwxXZXN0ZXJuIENhcGUxFDASBgNVBAcTC0R1cmJhbnZpbGxlMRowGAYDVQQKExFUaGF3 dGUgQ29uc3VsdGluZzEzMDEGA1UECxMqQ2VydGlmaWNhdGUgU2VydmljZXMgUlNBIElLIDE5 OTguMi4yNSA4OjM1MTswOQYDVQQDEzJUaGF3dGUgUGVyc29uYWwgRnJlZW1haWwgUlNBIElz c3VpbmcgS2V5IDE5OTguMi4yNQICMLQwCQYFKw4DAhoFAKCBmTAYBgkqhkiG9w0BCQMxCwYJ KoZIhvcNAQcBMBwGCSqGSIb3DQEJBTEPFw05ODA5MTAyMjU3MjRaMCMGCSqGSIb3DQEJBDEW BBRSrZuNWDvzDRO4HK0cZ8VTTxa5iTA6BgkqhkiG9w0BCQ8xLTArMAoGCCqGSIb3DQMHMA4G CCqGSIb3DQMCAgIAgDANBggqhkiG9w0DAgIBQDANBgkqhkiG9w0BAQEFAASBgKrHX+POy+Sm IxYbdflM5tFg/UT8lk7TcbCa7vpf7pSJBlTBn7cVBcMerHY2UnmxywlNWlOJPIZY9dK4948u O4zgzkS/cBN7rbfj/ynSdlnxT0eGrAXoqYfVSMXzPkHwbMB6l3vHk+xPJxgyYF9BTllGEGKb Z7u8XdpDLf7fIgAz --------------msD96EB4EA62C676DA1D0A48AB--

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/faq.html