Zero out msg buf as in sslsplit

ce5f409dbe
("Zero all bytes when passing file descriptors over AF_UNIX sockets",
2018-11-12)

Also, bufferevent_getfd() returns -1 if no file descriptor is associated
with the bufferevent.
pull/48/head
Soner Tari 4 years ago
parent 128838c70f
commit 8a96565d99

@ -2768,9 +2768,8 @@ global_set_option(global_t *global, const char *argv0, const char *optarg,
retval = set_global_option(global, argv0, name, value, natengine, 0, NULL);
}
if (line) {
if (line)
free(line);
}
return retval;
}

@ -1065,7 +1065,10 @@ protossl_bufferevent_free_and_close_fd(struct bufferevent *bev, pxy_conn_ctx_t *
#endif /* DEBUG_PROXY */
SSL_free(ssl);
evutil_closesocket(fd);
/* bufferevent_getfd() returns -1 if no file descriptor is associated
* with the bufferevent */
if (fd >= 0)
evutil_closesocket(fd);
}
void

@ -767,8 +767,6 @@ sys_sendmsgfd(int sock, void *buf, size_t bufsz, int fd)
char cmsgbuf[CMSG_SPACE(sizeof(int))];
ssize_t n;
memset(cmsgbuf, 0, sizeof(cmsgbuf));
iov.iov_base = buf;
iov.iov_len = bufsz;
@ -776,10 +774,12 @@ sys_sendmsgfd(int sock, void *buf, size_t bufsz, int fd)
msg.msg_namelen = 0;
msg.msg_iov = &iov;
msg.msg_iovlen = 1;
msg.msg_flags = 0;
if (fd != -1) {
msg.msg_control = cmsgbuf;
msg.msg_controllen = sizeof(cmsgbuf);
memset(cmsgbuf, 0, sizeof(cmsgbuf));
cmsg = CMSG_FIRSTHDR(&msg);
if (!cmsg)
@ -1042,4 +1042,3 @@ sys_rand32(void) {
}
/* vim: set noet ft=c: */

@ -684,9 +684,8 @@ opts_set_option(opts_t *opts, const char *argv0, const char *optarg)
retval = set_option(opts, argv0, name, value, 0);
}
if (line) {
if (line)
free(line);
}
return retval;
}

@ -584,8 +584,6 @@ sys_sendmsgfd(int sock, void *buf, size_t bufsz, int fd)
char cmsgbuf[CMSG_SPACE(sizeof(int))];
ssize_t n;
memset(cmsgbuf, 0, sizeof(cmsgbuf));
iov.iov_base = buf;
iov.iov_len = bufsz;
@ -593,10 +591,12 @@ sys_sendmsgfd(int sock, void *buf, size_t bufsz, int fd)
msg.msg_namelen = 0;
msg.msg_iov = &iov;
msg.msg_iovlen = 1;
msg.msg_flags = 0;
if (fd != -1) {
msg.msg_control = cmsgbuf;
msg.msg_controllen = sizeof(cmsgbuf);
memset(cmsgbuf, 0, sizeof(cmsgbuf));
cmsg = CMSG_FIRSTHDR(&msg);
if (!cmsg)
@ -675,4 +675,3 @@ sys_recvmsgfd(int sock, void *buf, size_t bufsz, int *pfd)
}
/* vim: set noet ft=c: */

Loading…
Cancel
Save