diff options
author | Elizabeth Myers <elizabeth@interlinked.me> | 2018-04-03 03:17:11 -0500 |
---|---|---|
committer | Elizabeth Myers <elizabeth@interlinked.me> | 2018-04-03 03:17:11 -0500 |
commit | 1505c62342e2a282fa7ab855b8d898084dddced6 (patch) | |
tree | 24a2dbe125985040aaefb5e71121e38a7646b014 | |
parent | c80521d4978910af745894b123a48c24e0dca86c (diff) | |
download | gcompat-1505c62342e2a282fa7ab855b8d898084dddced6.tar.gz gcompat-1505c62342e2a282fa7ab855b8d898084dddced6.tar.bz2 gcompat-1505c62342e2a282fa7ab855b8d898084dddced6.tar.xz gcompat-1505c62342e2a282fa7ab855b8d898084dddced6.zip |
socket: __poll_chk
-rw-r--r-- | libgcompat/socket.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/libgcompat/socket.c b/libgcompat/socket.c index 971a6ba..49da09d 100644 --- a/libgcompat/socket.c +++ b/libgcompat/socket.c @@ -39,3 +39,16 @@ ssize_t __recvfrom_chk(int fd, void *buf, size_t len, size_t buflen, int flags, return recvfrom(fd, buf, len, flags, address, address_len); } + +/** + * Checked version of poll, not in LSB but found in the wild. + * + * This checks if the size of fds is large enough to hold all the fd's claimed + * in nfds. + */ +int __poll_chk(struct pollfd *fds, nfds_t nfds, int timeout, size_t fdslen) +{ + assert((fdslen / sizeof(*fds)) < nfds); + + return poll(fds, nfds, timeout); +} |