From 5ad743e1820312de67b60e265da4eed5c3234ddf Mon Sep 17 00:00:00 2001 From: goldsimon Date: Thu, 24 Sep 2015 15:21:03 +0200 Subject: [PATCH] FD_SET: dump NULL-check that hides usage error, dump non-standard FD_SET_VAL --- src/api/sockets.c | 6 +++--- src/include/lwip/sockets.h | 9 ++------- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/src/api/sockets.c b/src/api/sockets.c index 29998787..be8fb9a6 100644 --- a/src/api/sockets.c +++ b/src/api/sockets.c @@ -1337,19 +1337,19 @@ lwip_selscan(int maxfdp1, fd_set *readset_in, fd_set *writeset_in, fd_set *excep /* ... then examine it: */ /* See if netconn of this socket is ready for read */ if (readset_in && FD_ISSET(i, readset_in) && ((lastdata != NULL) || (rcvevent > 0))) { - FD_SET_VAL(i, lreadset); + FD_SET(i, &lreadset); LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_selscan: fd=%d ready for reading\n", i)); nready++; } /* See if netconn of this socket is ready for write */ if (writeset_in && FD_ISSET(i, writeset_in) && (sendevent != 0)) { - FD_SET_VAL(i, lwriteset); + FD_SET(i, &lwriteset); LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_selscan: fd=%d ready for writing\n", i)); nready++; } /* See if netconn of this socket had an error */ if (exceptset_in && FD_ISSET(i, exceptset_in) && (errevent != 0)) { - FD_SET_VAL(i, lexceptset); + FD_SET(i, &lexceptset); LWIP_DEBUGF(SOCKETS_DEBUG, ("lwip_selscan: fd=%d ready for exception\n", i)); nready++; } diff --git a/src/include/lwip/sockets.h b/src/include/lwip/sockets.h index 19eee9ef..11f3bb58 100644 --- a/src/include/lwip/sockets.h +++ b/src/include/lwip/sockets.h @@ -405,15 +405,12 @@ typedef struct ip_mreq { #undef FD_SETSIZE /* Make FD_SETSIZE match NUM_SOCKETS in socket.c */ #define FD_SETSIZE MEMP_NUM_NETCONN -#define FDSETSAFESET_VAL(n, p, code) do { \ +#define FDSETSAFESET(n, p, code) do { \ if (((n) - LWIP_SOCKET_OFFSET < MEMP_NUM_NETCONN) && (((int)(n) - LWIP_SOCKET_OFFSET) >= 0)) { \ code; }} while(0) -#define FDSETSAFESET(n, p, code) do { \ - if ((p) != NULL) { FDSETSAFESET_VAL(n, p, code); }} while(0) -#define FDSETSAFEGET(n, p, code) (((p) != NULL) && ((n) - LWIP_SOCKET_OFFSET < MEMP_NUM_NETCONN) && (((int)(n) - LWIP_SOCKET_OFFSET) >= 0) ?\ +#define FDSETSAFEGET(n, p, code) (((n) - LWIP_SOCKET_OFFSET < MEMP_NUM_NETCONN) && (((int)(n) - LWIP_SOCKET_OFFSET) >= 0) ?\ (code) : 0) #define FD_SET(n, p) FDSETSAFESET(n, p, (p)->fd_bits[((n)-LWIP_SOCKET_OFFSET)/8] |= (1 << (((n)-LWIP_SOCKET_OFFSET) & 7))) -#define FD_SET_VAL(n, p) FDSETSAFESET_VAL(n, &(p), (p).fd_bits[((n)-LWIP_SOCKET_OFFSET)/8] |= (1 << (((n)-LWIP_SOCKET_OFFSET) & 7))) #define FD_CLR(n, p) FDSETSAFESET(n, p, (p)->fd_bits[((n)-LWIP_SOCKET_OFFSET)/8] &= ~(1 << (((n)-LWIP_SOCKET_OFFSET) & 7))) #define FD_ISSET(n,p) FDSETSAFEGET(n, p, (p)->fd_bits[((n)-LWIP_SOCKET_OFFSET)/8] & (1 << (((n)-LWIP_SOCKET_OFFSET) & 7))) #define FD_ZERO(p) memset((void*)(p), 0, sizeof(*(p))) @@ -425,8 +422,6 @@ typedef struct fd_set #elif LWIP_SOCKET_OFFSET #error LWIP_SOCKET_OFFSET does not work with external FD_SET! -#elif !defined(FD_SET_VAL) -#define FD_SET_VAL(n, p) FD_SET(n, &(p)) #endif /* FD_SET */ /** LWIP_TIMEVAL_PRIVATE: if you want to use the struct timeval provided