1
0
mirror of https://github.com/adtools/clib2.git synced 2025-12-08 14:59:05 +00:00

- Added more boundary checks to the FD_#?() macros which now also catch

the case of negative socket IDs.


git-svn-id: file:///Users/olsen/Code/migration-svn-zu-git/logical-line-staging/clib2/trunk@15061 87f5fb63-7c3d-0410-a384-fd976d0f7a62
This commit is contained in:
Olaf Barthel
2005-11-06 14:37:49 +00:00
parent 0f5e6747e0
commit 2b50d1586c

View File

@ -1,5 +1,5 @@
/*
* $Id: select.h,v 1.1 2005-10-09 12:32:18 obarthel Exp $
* $Id: select.h,v 1.2 2005-11-06 14:37:49 obarthel Exp $
*
* :ts=4
*
@ -72,9 +72,9 @@ typedef struct fd_set
unsigned long bits[(FD_SETSIZE + 31) / 32];
} fd_set;
#define FD_SET(n,p) ((void)((n) < FD_SETSIZE ? (p)->bits[((unsigned long)n) >> 5] |= (1UL << (((unsigned long)n) & 31)) : 0))
#define FD_CLR(n,p) ((void)((n) < FD_SETSIZE ? (p)->bits[((unsigned long)n) >> 5] &= ~(1UL << (((unsigned long)n) & 31)) : 0))
#define FD_ISSET(n,p) ((n) < FD_SETSIZE && ((p)->bits[((unsigned long)n) >> 5] & (1UL << (((unsigned long)n) & 31))) != 0)
#define FD_SET(n,p) ((void)(((unsigned long)n) < FD_SETSIZE ? (p)->bits[((unsigned long)n) >> 5] |= (1UL << (((unsigned long)n) & 31)) : 0))
#define FD_CLR(n,p) ((void)(((unsigned long)n) < FD_SETSIZE ? (p)->bits[((unsigned long)n) >> 5] &= ~(1UL << (((unsigned long)n) & 31)) : 0))
#define FD_ISSET(n,p) (((unsigned long)n) < FD_SETSIZE && ((p)->bits[((unsigned long)n) >> 5] & (1UL << (((unsigned long)n) & 31))) != 0)
#define FD_COPY(f,t) ((void)memmove(t,f,sizeof(*(f))))
#define FD_ZERO(p) ((void)memset(p,0,sizeof(*(p))))