Maybe that fixes the remaining issues with some gnutls versions.
metze
struct iovec iov;
struct tevent_req *subreq;
} pull;
struct iovec iov;
struct tevent_req *subreq;
} pull;
tstream_context_data(stream,
struct tstream_tls);
struct tevent_req *subreq;
tstream_context_data(stream,
struct tstream_tls);
struct tevent_req *subreq;
if (tlss->error != 0) {
errno = tlss->error;
if (tlss->error != 0) {
errno = tlss->error;
tlss->pull.iov.iov_base = (char *)b;
if (tlss->pull.iov.iov_len == 0) {
tlss->pull.iov.iov_base = NULL;
tlss->pull.iov.iov_base = (char *)b;
if (tlss->pull.iov.iov_len == 0) {
tlss->pull.iov.iov_base = NULL;
+ TALLOC_FREE(tlss->pull.buf);
- tlss->pull.iov.iov_base = tlss->pull.buffer;
- tlss->pull.iov.iov_len = MIN(size, sizeof(tlss->pull.buffer));
+ len = MIN(size, UINT16_MAX);
+
+ tlss->pull.buf = talloc_array(tlss, uint8_t, len);
+ if (tlss->pull.buf == NULL) {
+ return -1;
+ }
+
+ tlss->pull.iov.iov_base = (char *)tlss->pull.buf;
+ tlss->pull.iov.iov_len = len;
subreq = tstream_readv_send(tlss,
tlss->current_ev,
subreq = tstream_readv_send(tlss,
tlss->current_ev,