Hello!
Ok, let us continue. Seems, we are close to end of the story. 8)
Alexey
diff -ur ../vger-000618/linux/include/net/tcp.h linux/include/net/tcp.h
--- ../vger-000618/linux/include/net/tcp.h Mon Jan 31 22:10:29 2000
+++ linux/include/net/tcp.h Fri Jun 23 21:11:12 2000
@@ -910,6 +914,7 @@
/* Should be about 2 rtt's */
net_reset_timer(sk, TIME_DONE, min(tp->srtt * 2, TCP_DONE_TIME));
sk->prot->unhash(sk);
+ sk->next = (void*)12346;
/* fall through */
}
default:
diff -ur ../vger-000618/linux/net/ipv4/af_inet.c linux/net/ipv4/af_inet.c
--- ../vger-000618/linux/net/ipv4/af_inet.c Mon Jan 31 22:11:19 2000
+++ linux/net/ipv4/af_inet.c Fri Jun 23 21:11:12 2000
@@ -166,6 +166,7 @@
/* Remove from protocol hash chains. */
sk->prot->unhash(sk);
+ sk->next = (void*)12347;
if(sk->opt)
kfree(sk->opt);
@@ -295,6 +296,10 @@
*/
old_state = sk->state;
if (old_state != TCP_LISTEN) {
+ if (sk->pprev) {
+ printk("Khm... %d\n", old_state);
+ return -EFAULT;
+ }
sk->state = TCP_LISTEN;
sk->ack_backlog = 0;
if (sk->num == 0) {
diff -ur ../vger-000618/linux/net/ipv4/tcp_ipv4.c linux/net/ipv4/tcp_ipv4.c
--- ../vger-000618/linux/net/ipv4/tcp_ipv4.c Sun Jun 18 21:24:08 2000
+++ linux/net/ipv4/tcp_ipv4.c Fri Jun 23 21:11:12 2000
@@ -327,6 +327,13 @@
{
struct sock **skp;
+ if (sk->state == TCP_CLOSE) {
+ printk("The bug is found, guys 8).\n");
+ *(int *)0 = 0;
+ }
+ if (sk->pprev)
+ *(int *)0 = 0;
+
if(sk->state == TCP_LISTEN)
skp = &tcp_listening_hash[tcp_sk_listen_hashfn(sk)];
else
@@ -355,6 +362,7 @@
sk->next->pprev = sk->pprev;
*sk->pprev = sk->next;
sk->pprev = NULL;
+ sk->next = (void*)12345;
tcp_reg_zap(sk);
if (sk->prev != NULL)
__tcp_put_port(sk);
@@ -1366,6 +1374,8 @@
memcpy(newsk, sk, sizeof(*newsk));
newsk->sklist_next = NULL;
+ newsk->next = NULL;
+ newsk->pprev = NULL;
newsk->state = TCP_SYN_RECV;
/* Clone the TCP header template */
-
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/
This archive was generated by hypermail 2b29 : Fri Jun 23 2000 - 21:00:26 EST