@@ -40476,33 +40476,50 @@ static int test_tls_multi_handshakes_one_record(void)
4047640476 rh = (RecordLayerHeader*)(test_ctx.c_buff);
4047740477 len = &rh->length[0];
4047840478 ato16((const byte*)len, &recLen);
40479- XMEMCPY(buff, test_ctx.c_buff, RECORD_HEADER_SZ + recLen);
40480- newRecIdx = idx = RECORD_HEADER_SZ + recLen;
40481- /* Combine server handshake msgs into one record */
40482- while (idx < test_ctx.c_len) {
4048340479
40484- rh = (RecordLayerHeader*)(test_ctx.c_buff + idx );
40485- len = &rh->length[0] ;
40480+ ExpectIntLE(RECORD_HEADER_SZ + recLen, (int)sizeof(buff) );
40481+ ExpectIntLE(RECORD_HEADER_SZ + recLen, test_ctx.c_len) ;
4048640482
40487- ato16((const byte*)len, &recLen);
40488- idx += RECORD_HEADER_SZ;
40483+ if (EXPECT_SUCCESS()) {
40484+ XMEMCPY(buff, test_ctx.c_buff, RECORD_HEADER_SZ + recLen);
40485+ newRecIdx = idx = RECORD_HEADER_SZ + recLen;
40486+ /* Combine server handshake msgs into one record */
40487+ while (idx < test_ctx.c_len) {
4048940488
40490- XMEMCPY(buff + newRecIdx, test_ctx.c_buff + idx,
40491- (size_t)recLen) ;
40489+ rh = (RecordLayerHeader*)( test_ctx.c_buff + idx);
40490+ len = &rh->length[0] ;
4049240491
40493- newRecIdx += recLen;
40494- idx += recLen;
40495- }
40496- rh = (RecordLayerHeader*)(buff);
40497- len = &rh->length[0];
40498- c16toa((word16)newRecIdx - RECORD_HEADER_SZ, len);
40499- test_memio_clear_buffer(&test_ctx, 1);
40500- test_memio_inject_message(&test_ctx, 1, (const char*)buff, newRecIdx);
40492+ ato16((const byte*)len, &recLen);
40493+ ExpectIntLE(idx + RECORD_HEADER_SZ + recLen, test_ctx.c_len);
40494+ ExpectIntLE(newRecIdx + recLen, (int)sizeof(buff));
4050140495
40502- ExpectIntEQ(wolfSSL_connect(ssl_c), -1);
40503- ExpectIntEQ(wolfSSL_get_error(ssl_c, -1), WOLFSSL_ERROR_WANT_READ);
40496+ if (!EXPECT_SUCCESS()) {
40497+ break;
40498+ }
40499+
40500+ idx += RECORD_HEADER_SZ;
40501+
40502+ XMEMCPY(buff + newRecIdx, test_ctx.c_buff + idx,
40503+ (size_t)recLen);
40504+
40505+ newRecIdx += recLen;
40506+ idx += recLen;
40507+ }
40508+ if (EXPECT_SUCCESS()) {
40509+ rh = (RecordLayerHeader*)(buff);
40510+ len = &rh->length[0];
40511+ c16toa((word16)newRecIdx - RECORD_HEADER_SZ, len);
40512+ test_memio_clear_buffer(&test_ctx, 1);
40513+ test_memio_inject_message(&test_ctx, 1, (const char*)buff,
40514+ newRecIdx);
40515+
40516+ ExpectIntEQ(wolfSSL_connect(ssl_c), -1);
40517+ ExpectIntEQ(wolfSSL_get_error(ssl_c, -1), WOLFSSL_ERROR_WANT_READ);
40518+
40519+ ExpectIntEQ(test_memio_do_handshake(ssl_c, ssl_s, 10, NULL), 0);
40520+ }
40521+ }
4050440522
40505- ExpectIntEQ(test_memio_do_handshake(ssl_c, ssl_s, 10, NULL), 0);
4050640523
4050740524 wolfSSL_free(ssl_c);
4050840525 wolfSSL_free(ssl_s);
0 commit comments