@@ -11869,6 +11869,10 @@ static int test_wc_CertPemToDer(void)
1186911869 (int)cert_dersz, CERT_TYPE), WC_NO_ERR_TRACE(BAD_FUNC_ARG));
1187011870 ExpectIntEQ(wc_CertPemToDer(cert_buf, (int)cert_sz, cert_der, -1,
1187111871 CERT_TYPE), WC_NO_ERR_TRACE(BAD_FUNC_ARG));
11872+ ExpectIntEQ(wc_CertPemToDer(cert_buf, -1, cert_der, (int)cert_dersz,
11873+ CERT_TYPE), WC_NO_ERR_TRACE(BAD_FUNC_ARG));
11874+ ExpectIntEQ(wc_CertPemToDer(cert_buf, 0, cert_der, (int)cert_dersz,
11875+ CERT_TYPE), WC_NO_ERR_TRACE(BAD_FUNC_ARG));
1187211876
1187311877 if (cert_der != NULL)
1187411878 free(cert_der);
@@ -11925,6 +11929,12 @@ static int test_wc_KeyPemToDer(void)
1192511929 ExpectIntEQ(wc_KeyPemToDer(cert_buf, cert_sz, (byte*)&cert_der, 0, ""),
1192611930 WC_NO_ERR_TRACE(BAD_FUNC_ARG));
1192711931
11932+ /* Bad arg: negative or zero pemSz */
11933+ ExpectIntEQ(wc_KeyPemToDer(cert_buf, -1, (byte*)&cert_der, cert_sz, ""),
11934+ WC_NO_ERR_TRACE(BAD_FUNC_ARG));
11935+ ExpectIntEQ(wc_KeyPemToDer(cert_buf, 0, (byte*)&cert_der, cert_sz, ""),
11936+ WC_NO_ERR_TRACE(BAD_FUNC_ARG));
11937+
1192811938 /* Test normal operation */
1192911939 cert_dersz = cert_sz; /* DER will be smaller than PEM */
1193011940 ExpectNotNull(cert_der = (byte*)malloc((size_t)cert_dersz));
@@ -11968,6 +11978,10 @@ static int test_wc_PubKeyPemToDer(void)
1196811978 ExpectIntEQ(load_file(key, &cert_buf, &cert_sz), 0);
1196911979 cert_dersz = cert_sz; /* DER will be smaller than PEM */
1197011980 ExpectNotNull(cert_der = (byte*)malloc(cert_dersz));
11981+ ExpectIntEQ(wc_PubKeyPemToDer(cert_buf, -1, cert_der, (int)cert_dersz),
11982+ WC_NO_ERR_TRACE(BAD_FUNC_ARG));
11983+ ExpectIntEQ(wc_PubKeyPemToDer(cert_buf, 0, cert_der, (int)cert_dersz),
11984+ WC_NO_ERR_TRACE(BAD_FUNC_ARG));
1197111985 ExpectIntGE(wc_PubKeyPemToDer(cert_buf, (int)cert_sz, cert_der,
1197211986 (int)cert_dersz), 0);
1197311987 if (cert_der != NULL) {
0 commit comments