Fixes #4168
Signed-off-by: Masatake YAMATO <yamato@redhat.com>
{
long fds;
long nfds;
+ long max_nfds;
struct iovec local;
struct iovec remote;
/* Unexpected value */
return;
+ max_nfds = sysconf (_SC_OPEN_MAX);
+ if (max_nfds >= 0 && nfds > max_nfds)
+ return;
+
local.iov_len = sizeof(struct pollfd) * nfds;
- local.iov_base = xmalloc(local.iov_len);
+ local.iov_base = malloc(local.iov_len);
+ if (!local.iov_base)
+ goto out;
+
remote.iov_len = local.iov_len;
remote.iov_base = (void *)fds;