From: Jeffrey Altman Date: Mon, 18 Oct 2004 06:20:48 +0000 (+0000) Subject: STABLE12-rx-debug-20040529 X-Git-Tag: openafs-stable-1_2_12~13 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=56e9069292abc967c2c2363009dee872b4bcd846;p=packages%2Fo%2Fopenafs.git STABLE12-rx-debug-20040529 Fix MakeDebugCall to properly check the return code of select() and recvfrom(). Do not copy data buffer unless recvfrom() succeeds. (cherry picked from commit 52898404c69832c3954cb746b7529174d57169fc) --- diff --git a/src/rx/rx.c b/src/rx/rx.c index 369dbbc29..dfedf8f00 100644 --- a/src/rx/rx.c +++ b/src/rx/rx.c @@ -6175,14 +6175,17 @@ static int MakeDebugCall( tv.tv_sec = 1; tv.tv_usec = 0; code = select(socket+1, &imask, 0, 0, &tv); - if (code > 0) { + if (code == 1 && FD_ISSET(socket,&imask)) { /* now receive a packet */ faddrLen = sizeof(struct sockaddr_in); code = recvfrom(socket, tbuffer, sizeof(tbuffer), 0, (struct sockaddr *) &faddr, &faddrLen); - memcpy(&theader, tbuffer, sizeof(struct rx_header)); - if (counter == ntohl(theader.callNumber)) break; + if (code > 0) { + memcpy(&theader, tbuffer, sizeof(struct rx_header)); + if (counter == ntohl(theader.callNumber)) + break; + } } /* see if we've timed out */