From 56e9069292abc967c2c2363009dee872b4bcd846 Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Mon, 18 Oct 2004 06:20:48 +0000 Subject: [PATCH] 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) --- src/rx/rx.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) 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 */ -- 2.39.5