Merge pull request #8358 from julek-wolfssl/gh/8156-2

quic_record_append: return correct code
pull/8362/head
David Garske 2025-01-21 08:22:15 -08:00 committed by GitHub
commit eb261836a7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 12 additions and 11 deletions

View File

@ -154,18 +154,16 @@ static int quic_record_append(WOLFSSL *ssl, QuicRecord *qr, const uint8_t *data,
}
}
if (quic_record_complete(qr) || len == 0) {
return 0;
if (!quic_record_complete(qr) && len != 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:
*pconsumed = (ret == WOLFSSL_SUCCESS) ? consumed : 0;
return ret;

View File

@ -287,7 +287,10 @@ static int test_provide_quic_data(void) {
*/
AssertNotNull(ssl = wolfSSL_new(ctx));
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);
AssertTrue(provide_data(ssl, wolfssl_encryption_handshake, lbuffer, len, 0));
len = fake_record(2, 1, lbuffer);