fd_tracker_open_unsuspendable_fd may fail because the underlying
socket() call fails or there may be too many open file descriptors at
the time of the call. In both cases, these errors must be logged and
handled.
Signed-off-by: Jérémie Galarneau <jeremie.galarneau@efficios.com>
Change-Id: I8b8c4fcc9de08746a91778b58c74b2118e98667b
ret = fd_tracker_open_unsuspendable_fd(the_fd_tracker, &sock_fd,
(const char **) (formated_name ? &formated_name : NULL),
1, create_sock, sock);
- free(formated_name);
+ if (ret) {
+ PERROR("Failed to open \"%s\" relay socket",
+ formated_name ?: "Unknown");
+ goto error;
+ }
DBG("Listening on %s socket %d", name, sock->fd);
ret = sock->ops->bind(sock);
}
+ free(formated_name);
return sock;
error:
if (sock) {
lttcomm_destroy_sock(sock);
}
+ free(formated_name);
return NULL;
}