if (channel == IPC_CHANNEL_DATA) {
n_opt_val = 19200;
- setsockopt(sockfd, SOL_SOCKET, SO_SNDBUF, (char *) &n_opt_val, n_opt_len);
+ ret = setsockopt(sockfd, SOL_SOCKET, SO_SNDBUF, (char *) &n_opt_val, n_opt_len);
+ if (ret == -1) {
+ pa_log_error("unable to setsockopt SO_SNDBUF socket fd %d: %s", sockfd, pa_cstrerror(errno));
+ close(sockfd);
+ return -1;
+ }
+
socket_path = u->data_socket_path;
}
- getsockopt(sockfd, SOL_SOCKET, SO_SNDBUF, (char *) &n_opt_val, &n_opt_len);
+ ret = getsockopt(sockfd, SOL_SOCKET, SO_SNDBUF, (char *) &n_opt_val, &n_opt_len);
+ if (ret == -1) {
+ pa_log_error("unable to getsockopt SO_SNDBUF socket fd %d: %s", sockfd, pa_cstrerror(errno));
+ close(sockfd);
+ return -1;
+ }
pa_log_info("sockfd: %d, socket send buffer size: %d", sockfd, n_opt_val);
if (fcntl(sockfd, F_SETFD, FD_CLOEXEC) < 0) {
if (channel == IPC_CHANNEL_MSG) {
int flag = fcntl(sockfd, F_GETFL, 0);
+ if (flag == -1) {
+ pa_log_error("unable to get file status on socket fd %d: %s", sockfd, pa_cstrerror(errno));
+ close(sockfd);
+ return -1;
+ }
fcntl(sockfd, F_SETFL, flag | O_NONBLOCK);
}
memset(&address, 0, sizeof(address));
address.sun_family = AF_UNIX;
- strncpy(address.sun_path, socket_path, sizeof(address.sun_path));
+ strncpy(address.sun_path, socket_path, sizeof(address.sun_path) - 1);
len = sizeof(address);
if ((ret = connect(sockfd, (struct sockaddr *)&address, len)) < 0) {