mirror of https://github.com/wolfSSL/wolfssl.git
Merge pull request #8358 from julek-wolfssl/gh/8156-2
quic_record_append: return correct codepull/8362/head
commit
eb261836a7
18
src/quic.c
18
src/quic.c
|
@ -154,18 +154,16 @@ static int quic_record_append(WOLFSSL *ssl, QuicRecord *qr, const uint8_t *data,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (quic_record_complete(qr) || len == 0) {
|
if (!quic_record_complete(qr) && len != 0) {
|
||||||
return 0;
|
missing = qr->len - qr->end;
|
||||||
|
if (len > missing) {
|
||||||
|
len = missing;
|
||||||
|
}
|
||||||
|
XMEMCPY(qr->data + qr->end, data, len);
|
||||||
|
qr->end += (word32)len;
|
||||||
|
consumed += len;
|
||||||
}
|
}
|
||||||
|
|
||||||
missing = qr->len - qr->end;
|
|
||||||
if (len > missing) {
|
|
||||||
len = missing;
|
|
||||||
}
|
|
||||||
XMEMCPY(qr->data + qr->end, data, len);
|
|
||||||
qr->end += (word32)len;
|
|
||||||
consumed += len;
|
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
*pconsumed = (ret == WOLFSSL_SUCCESS) ? consumed : 0;
|
*pconsumed = (ret == WOLFSSL_SUCCESS) ? consumed : 0;
|
||||||
return ret;
|
return ret;
|
||||||
|
|
|
@ -287,7 +287,10 @@ static int test_provide_quic_data(void) {
|
||||||
*/
|
*/
|
||||||
AssertNotNull(ssl = wolfSSL_new(ctx));
|
AssertNotNull(ssl = wolfSSL_new(ctx));
|
||||||
len = fake_record(1, 100, lbuffer);
|
len = fake_record(1, 100, lbuffer);
|
||||||
AssertTrue(provide_data(ssl, wolfssl_encryption_initial, lbuffer, len, 0));
|
AssertTrue(provide_data(ssl, wolfssl_encryption_initial, lbuffer, 1, 0));
|
||||||
|
AssertTrue(provide_data(ssl, wolfssl_encryption_initial, lbuffer+1, 3, 0));
|
||||||
|
AssertTrue(provide_data(ssl, wolfssl_encryption_initial, lbuffer+4, len, 0)
|
||||||
|
);
|
||||||
len = fake_record(2, 1523, lbuffer);
|
len = fake_record(2, 1523, lbuffer);
|
||||||
AssertTrue(provide_data(ssl, wolfssl_encryption_handshake, lbuffer, len, 0));
|
AssertTrue(provide_data(ssl, wolfssl_encryption_handshake, lbuffer, len, 0));
|
||||||
len = fake_record(2, 1, lbuffer);
|
len = fake_record(2, 1, lbuffer);
|
||||||
|
|
Loading…
Reference in New Issue