Thread View: comp.bugs.4bsd.ucb-fixes
1 messages
1 total messages
Started by Keith Bostic
Fri, 06 May 1988 02:35
V1.58 (Bug in forwarding XNS packets on Suns, CCIs)
Author: Keith Bostic
Date: Fri, 06 May 1988 02:35
Date: Fri, 06 May 1988 02:35
39 lines
2064 bytes
2064 bytes
Subject: Bug in forwarding XNS packets on Suns, CCI's
Index: sys/netns/4.3BSD
Description:
If a system running 4.3BSD is forwarding XNS packets from one
network to another, and the system is a Big-Endian machine, such
as a 68000 based CPU, or CCI machine, some XNS packets will be
incorrectly checksumed on the outgoing network. This depends
on the length of the packet and the previous value of the checksum.
This bug persists in the recently released public version of XNS.
Repeat By:
Not worth writing a demonstration program. Bug is obvious.
Fix:
*** ns_input.c.bad Wed May 4 11:46:08 1988
--- ns_input.c Wed May 4 11:45:35 1988
***************
*** 12,12 ****
! * @(#)ns_input.c 7.2 (Berkeley) 1/20/88
--- 12,12 ----
! * @(#)ns_input.c 7.3 (Berkeley) 5/4/88
***************
*** 363,369 ****
register int shift;
x.l = 0; x.c[0] = agedelta;
shift = (((((int)ntohs(idp->idp_len))+1)>>1)-2) & 0xf;
! x.l = idp->idp_sum + (x.l << shift);
x.l = x.s[0] + x.s[1];
x.l = x.s[0] + x.s[1];
if (x.l==0xffff) idp->idp_sum = 0; else idp->idp_sum = x.l;
--- 363,369 ----
register int shift;
x.l = 0; x.c[0] = agedelta;
shift = (((((int)ntohs(idp->idp_len))+1)>>1)-2) & 0xf;
! x.l = idp->idp_sum + (x.s[0] << shift);
x.l = x.s[0] + x.s[1];
x.l = x.s[0] + x.s[1];
if (x.l==0xffff) idp->idp_sum = 0; else idp->idp_sum = x.l;
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads