news@rtech.UUCP (USENET News System) (05/06/88)
Description: rexec(3) incorrectly uses a short to hold a u_short port number. When the machine has been running long enough, this causes a wraparound error, and connection attempts fail. *** rexecd.c Fri Apr 29 10:43:47 1988 --- rexecd.c.new Fri Apr 29 10:48:01 1988 *************** *** 76,78 int s; ! short port; int pv[2], pid, ready, readfrom, cc; --- 76,78 ----- int s; ! u_short port; int pv[2], pid, ready, readfrom, cc; *** rexec.c Fri Apr 29 10:43:28 1988 --- rexec.c.new Fri Apr 29 10:47:16 1988 *************** *** 33,35 char c; ! short port; struct hostent *hp; --- 33,35 ----- char c; ! u_short port; struct hostent *hp; *************** *** 83,85 port = ntohs((u_short)sin2.sin_port); ! (void) sprintf(num, "%d", port); (void) write(s, num, strlen(num)+1); --- 83,85 ----- port = ntohs((u_short)sin2.sin_port); ! (void) sprintf(num, "%u", port); (void) write(s, num, strlen(num)+1); From: daveb@llama.rtech.UUCP ("It takes a clear mind to make it") Path: llama!daveb {amdahl, cpsc6a, mtxinu, ptsfa, sun, hoptoad}!rtech!daveb daveb@rtech.uucp