summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSimon Kelley <simon@thekelleys.org.uk>2022-08-11 17:04:54 +0100
committerSimon Kelley <simon@thekelleys.org.uk>2022-08-11 17:04:54 +0100
commit09d741f58a50f7e9ec2d6e0634f8ab5b11a7de5f (patch)
tree38684afd99af244c964a74c439e3b8f23741929b
parent0666ae3d27fd831e46ee9d984f4271b4ec330f5f (diff)
downloaddnsmasq-09d741f58a50f7e9ec2d6e0634f8ab5b11a7de5f.tar.gz
Simplify realloc use in poll.c
-rw-r--r--src/poll.c16
1 files changed, 4 insertions, 12 deletions
diff --git a/src/poll.c b/src/poll.c
index 0e5964d..bbb9009 100644
--- a/src/poll.c
+++ b/src/poll.c
@@ -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++;