Fixes TCP hangup bug
authorBarret Rhoden <brho@cs.berkeley.edu>
Mon, 31 Mar 2014 23:29:19 +0000 (16:29 -0700)
committerBarret Rhoden <brho@cs.berkeley.edu>
Mon, 31 Mar 2014 23:29:19 +0000 (16:29 -0700)
The old check is always true, since raddr is an array.  This would break
when you try to hangup an announced, but unconnected conversation.

kern/src/net/tcp.c

index 5f8c942..534250c 100644 (file)
@@ -1309,7 +1309,7 @@ char *tcphangup(struct conv *s)
                poperror();
                return commonerror();
        }
-       if (s->raddr != 0) {
+       if (ipcmp(s->raddr, IPnoaddr)) {
                /* discard error style, poperror regardless */
                if (!waserror()) {
                        seg.flags = RST | ACK;