s3:lib: avoid talloc_zero_array() in poll_one_fd()
authorStefan Metzmacher <metze@samba.org>
Wed, 4 Dec 2013 22:31:10 +0000 (23:31 +0100)
committerStefan Metzmacher <metze@samba.org>
Tue, 10 Mar 2015 09:55:45 +0000 (10:55 +0100)
Signed-off-by: Stefan Metzmacher <metze@samba.org>
source3/lib/util_sock.c

index 7fcb9c4c96afcf897f5fe52d33ee5667c70d1644..9856ae3840d2bdd0d2f2d1e8d0e3bbb10b4836a5 100644 (file)
@@ -1606,27 +1606,18 @@ int getaddrinfo_recv(struct tevent_req *req, struct addrinfo **res)
 
 int poll_one_fd(int fd, int events, int timeout, int *revents)
 {
-       struct pollfd *fds;
+       struct pollfd pfd;
        int ret;
-       int saved_errno;
 
-       fds = talloc_zero_array(talloc_tos(), struct pollfd, 1);
-       if (fds == NULL) {
-               errno = ENOMEM;
-               return -1;
-       }
-       fds[0].fd = fd;
-       fds[0].events = events;
+       pfd.fd = fd;
+       pfd.events = events;
 
-       ret = poll(fds, 1, timeout);
+       ret = poll(&pfd, 1, timeout);
 
        /*
         * Assign whatever poll did, even in the ret<=0 case.
         */
-       *revents = fds[0].revents;
-       saved_errno = errno;
-       TALLOC_FREE(fds);
-       errno = saved_errno;
+       *revents = pfd.revents;
 
        return ret;
 }