Commit 2a07ee72 authored by unknown's avatar unknown
Browse files

Bug#19191 Repeated crashes on OpenBSD for ssl test cases

 - Import patch from yaSSL


extra/yassl/src/handshake.cpp:
  Import patch yassl.diff
extra/yassl/src/socket_wrapper.cpp:
  Import patch yassl.diff
parent 9aed96ce
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -880,7 +880,7 @@ int sendData(SSL& ssl, const void* buffer, int sz)
        ssl.SetError(no_error);

    ssl.verfiyHandShakeComplete();
    if (ssl.GetError()) return 0;
    if (ssl.GetError()) return -1;
    int sent = 0;

    for (;;) {
@@ -891,7 +891,7 @@ int sendData(SSL& ssl, const void* buffer, int sz)
        buildMessage(ssl, out, data);
        ssl.Send(out.get_buffer(), out.get_size());

        if (ssl.GetError()) return 0;
        if (ssl.GetError()) return -1;
        sent += len;
        if (sent == sz) break;
    }
@@ -918,14 +918,14 @@ int receiveData(SSL& ssl, Data& data)
        ssl.SetError(no_error);

    ssl.verfiyHandShakeComplete();
    if (ssl.GetError()) return 0;
    if (ssl.GetError()) return -1;

    if (!ssl.bufferedData())
        processReply(ssl);
    ssl.fillData(data);
    ssl.useLog().ShowData(data.get_length());

    if (ssl.GetError()) return 0;
    if (ssl.GetError()) return -1;

    if (data.get_length() == 0 && ssl.getSocket().WouldBlock()) {
        ssl.SetError(YasslError(SSL_ERROR_WANT_READ));
+11 −2
Original line number Diff line number Diff line
@@ -113,13 +113,22 @@ uint Socket::get_ready() const

uint Socket::send(const byte* buf, unsigned int sz, int flags) const
{
    const byte* pos = buf;
    const byte* end = pos + sz;

    assert(socket_ != INVALID_SOCKET);
    int sent = ::send(socket_, reinterpret_cast<const char *>(buf), sz, flags);

    while (pos != end) {
        int sent = ::send(socket_, reinterpret_cast<const char *>(pos),
                          static_cast<int>(end - pos), flags);

    if (sent == -1)
        return 0;

    return sent;
        pos += sent;
    }

    return sz;
}