diff options
author | Simon Kelley <simon@thekelleys.org.uk> | 2022-08-11 17:04:54 +0100 |
---|---|---|
committer | Simon Kelley <simon@thekelleys.org.uk> | 2022-08-11 17:04:54 +0100 |
commit | 09d741f58a50f7e9ec2d6e0634f8ab5b11a7de5f (patch) | |
tree | 38684afd99af244c964a74c439e3b8f23741929b | |
parent | 0666ae3d27fd831e46ee9d984f4271b4ec330f5f (diff) | |
download | dnsmasq-09d741f58a50f7e9ec2d6e0634f8ab5b11a7de5f.tar.gz |
Simplify realloc use in poll.c
-rw-r--r-- | src/poll.c | 16 |
1 files changed, 4 insertions, 12 deletions
@@ -96,9 +96,7 @@ void poll_listen(int fd, short event) pollfds[i].events |= event; else { - if (arrsize != nfds) - memmove(&pollfds[i+1], &pollfds[i], (nfds - i) * sizeof(struct pollfd)); - else + if (arrsize == nfds) { /* Array too small, extend. */ struct pollfd *new; @@ -108,17 +106,11 @@ void poll_listen(int fd, short event) if (!(new = whine_realloc(pollfds, arrsize * sizeof(struct pollfd)))) return; - if (pollfds) - { - memmove(&new[i+1], &new[i], (nfds - i) * sizeof(struct pollfd)); - /* clear remaining space with zeroes. */ - if (nfds+1 < arrsize) - memset(new+nfds+1, 0, arrsize-nfds-1); - } - pollfds = new; } - + + memmove(&pollfds[i+1], &pollfds[i], (nfds - i) * sizeof(struct pollfd)); + pollfds[i].fd = fd; pollfds[i].events = event; nfds++; |