@@ -13402,6 +13402,7 @@ static int TLSX_ExpandEchOuterExtensions(WOLFSSL* ssl, WOLFSSL_ECH* ech,
1340213402 void* heap)
1340313403{
1340413404 int ret = 0;
13405+ int headerSz;
1340513406 const byte* innerCh;
1340613407 word32 innerChLen;
1340713408 const byte* outerCh;
@@ -13429,7 +13430,14 @@ static int TLSX_ExpandEchOuterExtensions(WOLFSSL* ssl, WOLFSSL_ECH* ech,
1342913430 if (ech == NULL || ech->innerClientHello == NULL || ech->aad == NULL)
1343013431 return BAD_FUNC_ARG;
1343113432
13432- innerCh = ech->innerClientHello + HANDSHAKE_HEADER_SZ;
13433+ #ifdef WOLFSSL_DTLS13
13434+ headerSz = ssl->options.dtls ? DTLS13_HANDSHAKE_HEADER_SZ :
13435+ HANDSHAKE_HEADER_SZ;
13436+ #else
13437+ headerSz = HANDSHAKE_HEADER_SZ;
13438+ #endif
13439+
13440+ innerCh = ech->innerClientHello + headerSz;
1343313441 innerChLen = ech->innerClientHelloLen;
1343413442 outerCh = ech->aad;
1343513443 outerChLen = ech->aadLen;
@@ -13518,8 +13526,8 @@ static int TLSX_ExpandEchOuterExtensions(WOLFSSL* ssl, WOLFSSL_ECH* ech,
1351813526 return ret;
1351913527 }
1352013528 else {
13521- newInnerCh = (byte*)XMALLOC(newInnerChLen + HANDSHAKE_HEADER_SZ , heap,
13522- DYNAMIC_TYPE_TMP_BUFFER);
13529+ newInnerCh = (byte*)XMALLOC(newInnerChLen + headerSz , heap,
13530+ DYNAMIC_TYPE_TMP_BUFFER);
1352313531 if (newInnerCh == NULL)
1352413532 return MEMORY_E;
1352513533 }
@@ -13529,7 +13537,7 @@ static int TLSX_ExpandEchOuterExtensions(WOLFSSL* ssl, WOLFSSL_ECH* ech,
1352913537 * AddTls13HandShakeHeader() in DoTls13ClientHello(). */
1353013538
1353113539 /* copy everything up to EchOuterExtensions */
13532- newInnerChRef = newInnerCh + HANDSHAKE_HEADER_SZ ;
13540+ newInnerChRef = newInnerCh + headerSz ;
1353313541 copyLen = OPAQUE16_LEN + RAN_LEN;
1353413542 XMEMCPY(newInnerChRef, innerCh, copyLen);
1353513543 newInnerChRef += copyLen;
0 commit comments