diff --git a/src/ssl.c b/src/ssl.c index e1f48f95c..69714c515 100644 --- a/src/ssl.c +++ b/src/ssl.c @@ -12549,7 +12549,7 @@ int wolfSSL_set_compression(WOLFSSL* ssl) if (hint == 0) ctx->server_hint[0] = '\0'; else { - XSTRNCPY(ctx->server_hint, hint, sizeof(ctx->server_hint)); + XSTRNCPY(ctx->server_hint, hint, MAX_PSK_ID_LEN); ctx->server_hint[MAX_PSK_ID_LEN] = '\0'; /* null term */ } return WOLFSSL_SUCCESS; @@ -25351,7 +25351,7 @@ int wolfSSL_RAND_egd(const char* nm) } if (ret == WOLFSSL_SUCCESS) { rem.sun_family = AF_UNIX; - XSTRNCPY(rem.sun_path, nm, sizeof(rem.sun_path)); + XSTRNCPY(rem.sun_path, nm, sizeof(rem.sun_path) - 1); rem.sun_path[sizeof(rem.sun_path)-1] = '\0'; } diff --git a/wolfcrypt/src/asn.c b/wolfcrypt/src/asn.c index 82973c6ac..fdeadccbd 100644 --- a/wolfcrypt/src/asn.c +++ b/wolfcrypt/src/asn.c @@ -13081,56 +13081,56 @@ static void SetNameFromDcert(CertName* cn, DecodedCert* decoded) if (decoded->subjectCN) { sz = (decoded->subjectCNLen < CTC_NAME_SIZE) ? decoded->subjectCNLen : CTC_NAME_SIZE - 1; - XSTRNCPY(cn->commonName, decoded->subjectCN, CTC_NAME_SIZE); + XSTRNCPY(cn->commonName, decoded->subjectCN, sz); cn->commonName[sz] = '\0'; cn->commonNameEnc = decoded->subjectCNEnc; } if (decoded->subjectC) { sz = (decoded->subjectCLen < CTC_NAME_SIZE) ? decoded->subjectCLen : CTC_NAME_SIZE - 1; - XSTRNCPY(cn->country, decoded->subjectC, CTC_NAME_SIZE); + XSTRNCPY(cn->country, decoded->subjectC, sz); cn->country[sz] = '\0'; cn->countryEnc = decoded->subjectCEnc; } if (decoded->subjectST) { sz = (decoded->subjectSTLen < CTC_NAME_SIZE) ? decoded->subjectSTLen : CTC_NAME_SIZE - 1; - XSTRNCPY(cn->state, decoded->subjectST, CTC_NAME_SIZE); + XSTRNCPY(cn->state, decoded->subjectST, sz); cn->state[sz] = '\0'; cn->stateEnc = decoded->subjectSTEnc; } if (decoded->subjectL) { sz = (decoded->subjectLLen < CTC_NAME_SIZE) ? decoded->subjectLLen : CTC_NAME_SIZE - 1; - XSTRNCPY(cn->locality, decoded->subjectL, CTC_NAME_SIZE); + XSTRNCPY(cn->locality, decoded->subjectL, sz); cn->locality[sz] = '\0'; cn->localityEnc = decoded->subjectLEnc; } if (decoded->subjectO) { sz = (decoded->subjectOLen < CTC_NAME_SIZE) ? decoded->subjectOLen : CTC_NAME_SIZE - 1; - XSTRNCPY(cn->org, decoded->subjectO, CTC_NAME_SIZE); + XSTRNCPY(cn->org, decoded->subjectO, sz); cn->org[sz] = '\0'; cn->orgEnc = decoded->subjectOEnc; } if (decoded->subjectOU) { sz = (decoded->subjectOULen < CTC_NAME_SIZE) ? decoded->subjectOULen : CTC_NAME_SIZE - 1; - XSTRNCPY(cn->unit, decoded->subjectOU, CTC_NAME_SIZE); + XSTRNCPY(cn->unit, decoded->subjectOU, sz); cn->unit[sz] = '\0'; cn->unitEnc = decoded->subjectOUEnc; } if (decoded->subjectSN) { sz = (decoded->subjectSNLen < CTC_NAME_SIZE) ? decoded->subjectSNLen : CTC_NAME_SIZE - 1; - XSTRNCPY(cn->sur, decoded->subjectSN, CTC_NAME_SIZE); + XSTRNCPY(cn->sur, decoded->subjectSN, sz); cn->sur[sz] = '\0'; cn->surEnc = decoded->subjectSNEnc; } if (decoded->subjectSND) { sz = (decoded->subjectSNDLen < CTC_NAME_SIZE) ? decoded->subjectSNDLen : CTC_NAME_SIZE - 1; - XSTRNCPY(cn->serialDev, decoded->subjectSND, CTC_NAME_SIZE); + XSTRNCPY(cn->serialDev, decoded->subjectSND, sz); cn->serialDev[sz] = '\0'; cn->serialDevEnc = decoded->subjectSNDEnc; } @@ -13138,21 +13138,21 @@ static void SetNameFromDcert(CertName* cn, DecodedCert* decoded) if (decoded->subjectBC) { sz = (decoded->subjectBCLen < CTC_NAME_SIZE) ? decoded->subjectBCLen : CTC_NAME_SIZE - 1; - XSTRNCPY(cn->busCat, decoded->subjectBC, CTC_NAME_SIZE); + XSTRNCPY(cn->busCat, decoded->subjectBC, sz); cn->busCat[sz] = '\0'; cn->busCatEnc = decoded->subjectBCEnc; } if (decoded->subjectJC) { sz = (decoded->subjectJCLen < CTC_NAME_SIZE) ? decoded->subjectJCLen : CTC_NAME_SIZE - 1; - XSTRNCPY(cn->joiC, decoded->subjectJC, CTC_NAME_SIZE); + XSTRNCPY(cn->joiC, decoded->subjectJC, sz); cn->joiC[sz] = '\0'; cn->joiCEnc = decoded->subjectJCEnc; } if (decoded->subjectJS) { sz = (decoded->subjectJSLen < CTC_NAME_SIZE) ? decoded->subjectJSLen : CTC_NAME_SIZE - 1; - XSTRNCPY(cn->joiSt, decoded->subjectJS, CTC_NAME_SIZE); + XSTRNCPY(cn->joiSt, decoded->subjectJS, sz); cn->joiSt[sz] = '\0'; cn->joiStEnc = decoded->subjectJSEnc; } @@ -13160,7 +13160,7 @@ static void SetNameFromDcert(CertName* cn, DecodedCert* decoded) if (decoded->subjectEmail) { sz = (decoded->subjectEmailLen < CTC_NAME_SIZE) ? decoded->subjectEmailLen : CTC_NAME_SIZE - 1; - XSTRNCPY(cn->email, decoded->subjectEmail, CTC_NAME_SIZE); + XSTRNCPY(cn->email, decoded->subjectEmail, sz); cn->email[sz] = '\0'; } }