From f438e7ac65583d21c4b7e8a01f3b5c738864b91b Mon Sep 17 00:00:00 2001 From: Ludovic FLAMENT Date: Mon, 9 May 2016 08:13:17 +0200 Subject: [PATCH] Fix for Fedora 32/64 --- wolfcrypt/src/bio.c | 149 +++++++++++++++++++++++------------------- wolfcrypt/test/test.c | 98 +++++++++++++-------------- 2 files changed, 130 insertions(+), 117 deletions(-) diff --git a/wolfcrypt/src/bio.c b/wolfcrypt/src/bio.c index 035a3cb07..f168674a8 100644 --- a/wolfcrypt/src/bio.c +++ b/wolfcrypt/src/bio.c @@ -45,7 +45,7 @@ #include #include #include -#ifdef SO_NOSIGPIPE +#ifndef SO_NOSIGPIPE #include #endif #endif /* USE_WINDOWS_API */ @@ -271,8 +271,9 @@ int wc_BioRead(WOLFCRYPT_BIO *bio, void *data, int size) if (bio->callback != NULL) { ret = bio->callback(bio, BIO_CB_READ | BIO_CB_RETURN, data, size, 0, ret); - if (ret <= 0) + if (ret <= 0) { WOLFSSL_ERROR(BIO_CALLBACK_E); + } } WOLFSSL_LEAVE("wc_BioRead", (int)ret); @@ -323,8 +324,9 @@ int wc_BioWrite(WOLFCRYPT_BIO *bio, const void *data, int size) if (bio->callback != NULL) { ret = bio->callback(bio, BIO_CB_WRITE | BIO_CB_RETURN, data, size, 0, ret); - if (ret <= 0) + if (ret <= 0) { WOLFSSL_ERROR(BIO_CALLBACK_E); + } } WOLFSSL_LEAVE("wc_BioWrite", (int)ret); @@ -369,8 +371,9 @@ int wc_BioPuts(WOLFCRYPT_BIO *bio, const char *data) if (bio->callback != NULL) { ret = bio->callback(bio, BIO_CB_PUTS | BIO_CB_RETURN, data, 0, 0, ret); - if (ret <= 0) + if (ret <= 0) { WOLFSSL_ERROR(BIO_CALLBACK_E); + } } WOLFSSL_LEAVE("wc_BioPuts", (int)ret); @@ -414,8 +417,9 @@ int wc_BioGets(WOLFCRYPT_BIO *bio, char *data, int size) if (bio->callback != NULL) { ret = bio->callback(bio, BIO_CB_GETS | BIO_CB_RETURN, data, size, 0, ret); - if (ret <= 0) + if (ret <= 0) { WOLFSSL_ERROR(BIO_CALLBACK_E); + } } WOLFSSL_LEAVE("wc_BioGets", (int)ret); @@ -457,8 +461,9 @@ long wc_BioCtrl(WOLFCRYPT_BIO *bio, int cmd, long larg, void *parg) if (bio->callback != NULL) { ret = bio->callback(bio, BIO_CB_CTRL | BIO_CB_RETURN, parg, cmd, larg, ret); - if (ret <= 0) + if (ret <= 0) { WOLFSSL_ERROR(BIO_CALLBACK_E); + } } WOLFSSL_LEAVE("wc_BioCtrl", (int)ret); @@ -501,8 +506,9 @@ long wc_BioCallbackCtrl(WOLFCRYPT_BIO *bio, int cmd, if (bio->callback != NULL) { ret = bio->callback(bio, BIO_CB_CTRL | BIO_CB_RETURN, (void *)&fp, cmd, 0, ret); - if (ret <= 0) + if (ret <= 0) { WOLFSSL_ERROR(BIO_CALLBACK_E); + } } WOLFSSL_LEAVE("wc_BioCallbackCtrl", (int)ret); @@ -2096,8 +2102,9 @@ void wc_BioSetCipher(WOLFCRYPT_BIO *bio, const WOLFCRYPT_EVP_CIPHER *cipher, if ((bio->callback != NULL) && bio->callback(bio, BIO_CB_CTRL, (const char *)cipher, - BIO_CTRL_SET, enc, 1) <= 0) + BIO_CTRL_SET, enc, 1) <= 0) { WOLFSSL_ERROR(BIO_CALLBACK_E); + } } static int wc_BioCipher_new(WOLFCRYPT_BIO *bio) @@ -2631,8 +2638,9 @@ static long wc_BioDigest_ctrl(WOLFCRYPT_BIO *bio, int cmd, long num, void *ptr) ret = wc_EVP_DigestInit(ctx, (WOLFCRYPT_EVP_MD *)ptr); if (ret > 0) bio->init = 1; - else + else { WOLFSSL_ERROR(BIO_DGST_INIT_E); + } break; case BIO_CTRL_DUP: @@ -3209,22 +3217,22 @@ static int wc_BioAccept_new(WOLFCRYPT_BIO *bio) static void wc_BioAccept_close_socket(WOLFCRYPT_BIO *bio) { - WOLFCRYPT_BIO_ACCEPT *accept; + WOLFCRYPT_BIO_ACCEPT *baccept; if (bio == NULL) { WOLFSSL_ERROR(BAD_FUNC_ARG); return; } - accept = (WOLFCRYPT_BIO_ACCEPT *)bio->ptr; - if (accept->accept_sock != WOLFSSL_SOCKET_INVALID) { - shutdown(accept->accept_sock, SHUT_RDWR); + baccept = (WOLFCRYPT_BIO_ACCEPT *)bio->ptr; + if (baccept->accept_sock != WOLFSSL_SOCKET_INVALID) { + shutdown(baccept->accept_sock, SHUT_RDWR); #ifdef USE_WINDOWS_API - closesocket(accept->accept_sock); + closesocket(baccept->accept_sock); #else - close(accept->accept_sock); + close(baccept->accept_sock); #endif - accept->accept_sock = WOLFSSL_SOCKET_INVALID; + baccept->accept_sock = WOLFSSL_SOCKET_INVALID; bio->num = WOLFSSL_SOCKET_INVALID; } } @@ -3244,14 +3252,14 @@ static int wc_BioAccept_free(WOLFCRYPT_BIO *bio) wc_BioAccept_close_socket(bio); if (bio->ptr != NULL) { - WOLFCRYPT_BIO_ACCEPT *accept = (WOLFCRYPT_BIO_ACCEPT *)bio->ptr; + WOLFCRYPT_BIO_ACCEPT *baccept = (WOLFCRYPT_BIO_ACCEPT *)bio->ptr; - if (accept->param_addr != NULL) - XFREE(accept->param_addr, 0, DYNAMIC_TYPE_OPENSSL); - if (accept->ip_port != NULL) - XFREE(accept->ip_port, 0, DYNAMIC_TYPE_OPENSSL); - if (accept->bio_chain != NULL) - wc_BioFree(accept->bio_chain); + if (baccept->param_addr != NULL) + XFREE(baccept->param_addr, 0, DYNAMIC_TYPE_OPENSSL); + if (baccept->ip_port != NULL) + XFREE(baccept->ip_port, 0, DYNAMIC_TYPE_OPENSSL); + if (baccept->bio_chain != NULL) + wc_BioFree(baccept->bio_chain); XFREE(bio->ptr, 0, DYNAMIC_TYPE_OPENSSL); bio->ptr = NULL; @@ -3263,30 +3271,30 @@ static int wc_BioAccept_free(WOLFCRYPT_BIO *bio) return 1; } -static int wc_BioAccept_state(WOLFCRYPT_BIO *bio, WOLFCRYPT_BIO_ACCEPT *accept) +static int wc_BioAccept_state(WOLFCRYPT_BIO *bio, WOLFCRYPT_BIO_ACCEPT *baccept) { WOLFCRYPT_BIO *nbio = NULL; int s = -1; int dsock; - if (bio == NULL || accept == NULL) { + if (bio == NULL || baccept == NULL) { WOLFSSL_ERROR(BAD_FUNC_ARG); return 0; } again: - switch (accept->state) { + switch (baccept->state) { case ACPT_S_BEFORE: - if (accept->param_addr == NULL) { + if (baccept->param_addr == NULL) { WOLFSSL_ERROR(BIO_NO_PORT_E); return -1; } - s = wc_BioGetAcceptSocket(accept->param_addr, accept->bind_mode); + s = wc_BioGetAcceptSocket(baccept->param_addr, baccept->bind_mode); if (s == WOLFSSL_SOCKET_INVALID) return -1; - if (accept->accept_nbio) { + if (baccept->accept_nbio) { if (!wc_BioSocketNbio(s, 1)) { #ifdef USE_WINDOWS_API closesocket(s); @@ -3299,7 +3307,7 @@ again: } /* TCP NO DELAY */ - if (accept->options & 1) { + if (baccept->options & 1) { if (!wc_BioSetTcpNdelay(s, 1)) { #ifdef USE_WINDOWS_API closesocket(s); @@ -3312,7 +3320,7 @@ again: } /* IGNORE SIGPIPE */ - if (accept->options & 2) { + if (baccept->options & 2) { if (!wc_BioSetTcpNsigpipe(s, 1)) { #ifdef USE_WINDOWS_API closesocket(s); @@ -3324,21 +3332,21 @@ again: } } - accept->accept_sock = s; + baccept->accept_sock = s; bio->num = s; - accept->state = ACPT_S_GET_ACCEPT_SOCKET; + baccept->state = ACPT_S_GET_ACCEPT_SOCKET; return 1; break; case ACPT_S_GET_ACCEPT_SOCKET: if (bio->next_bio != NULL) { - accept->state = ACPT_S_OK; + baccept->state = ACPT_S_OK; goto again; } wc_BioClearRetryFlags(bio); bio->retry_reason = 0; - dsock = wc_BioAccept(accept->accept_sock, &accept->ip_port); + dsock = wc_BioAccept(baccept->accept_sock, &baccept->ip_port); /* retry case */ if (dsock == -2) { @@ -3357,7 +3365,7 @@ again: wc_BioSetCallback(nbio, wc_BioGetCallback(bio)); wc_BioSetCallbackArg(nbio, wc_BioGetCallbackArg(bio)); - if (accept->nbio) { + if (baccept->nbio) { if (!wc_BioSocketNbio(dsock, 1)) { WOLFSSL_ERROR(BIO_NBIO_E); goto err; @@ -3368,8 +3376,8 @@ again: * If the accept BIO has an bio_chain, we dup it and put the new * socket at the end. */ - if (accept->bio_chain != NULL) { - WOLFCRYPT_BIO *dbio = wc_BioDupChain(accept->bio_chain); + if (baccept->bio_chain != NULL) { + WOLFCRYPT_BIO *dbio = wc_BioDupChain(baccept->bio_chain); if (dbio == NULL) goto err; if (!wc_BioPush(dbio, nbio)) @@ -3380,7 +3388,7 @@ again: if (wc_BioPush(bio, nbio) == NULL) goto err; - accept->state = ACPT_S_OK; + baccept->state = ACPT_S_OK; return 1; err: if (nbio != NULL) @@ -3395,7 +3403,7 @@ again: case ACPT_S_OK: if (bio->next_bio == NULL) { - accept->state = ACPT_S_GET_ACCEPT_SOCKET; + baccept->state = ACPT_S_GET_ACCEPT_SOCKET; goto again; } return 1; @@ -3411,7 +3419,7 @@ again: static int wc_BioAccept_read(WOLFCRYPT_BIO *bio, char *data, int size) { int ret = 0; - WOLFCRYPT_BIO_ACCEPT *accept; + WOLFCRYPT_BIO_ACCEPT *baccept; if (bio == NULL || data == NULL) { WOLFSSL_ERROR(BAD_FUNC_ARG); @@ -3419,10 +3427,10 @@ static int wc_BioAccept_read(WOLFCRYPT_BIO *bio, char *data, int size) } wc_BioClearRetryFlags(bio); - accept = (WOLFCRYPT_BIO_ACCEPT *)bio->ptr; + baccept = (WOLFCRYPT_BIO_ACCEPT *)bio->ptr; while (bio->next_bio == NULL) { - ret = wc_BioAccept_state(bio, accept); + ret = wc_BioAccept_state(bio, baccept); if (ret <= 0) return ret; } @@ -3436,7 +3444,7 @@ static int wc_BioAccept_read(WOLFCRYPT_BIO *bio, char *data, int size) static int wc_BioAccept_write(WOLFCRYPT_BIO *bio, const char *data, int size) { int ret = 0; - WOLFCRYPT_BIO_ACCEPT *accept; + WOLFCRYPT_BIO_ACCEPT *baccept; if (bio == NULL || data == NULL) { WOLFSSL_ERROR(BAD_FUNC_ARG); @@ -3444,10 +3452,10 @@ static int wc_BioAccept_write(WOLFCRYPT_BIO *bio, const char *data, int size) } wc_BioClearRetryFlags(bio); - accept = (WOLFCRYPT_BIO_ACCEPT *)bio->ptr; + baccept = (WOLFCRYPT_BIO_ACCEPT *)bio->ptr; while (bio->next_bio == NULL) { - ret = wc_BioAccept_state(bio, accept); + ret = wc_BioAccept_state(bio, baccept); if (ret <= 0) return ret; } @@ -3462,7 +3470,7 @@ static long wc_BioAccept_ctrl(WOLFCRYPT_BIO *bio, int cmd, long num, void *ptr) { int *ip; long ret = 1; - WOLFCRYPT_BIO_ACCEPT *accept; + WOLFCRYPT_BIO_ACCEPT *baccept; char **pp; if (bio == NULL) { @@ -3470,49 +3478,49 @@ static long wc_BioAccept_ctrl(WOLFCRYPT_BIO *bio, int cmd, long num, void *ptr) return 0; } - accept = (WOLFCRYPT_BIO_ACCEPT *)bio->ptr; + baccept = (WOLFCRYPT_BIO_ACCEPT *)bio->ptr; switch (cmd) { case BIO_CTRL_RESET: ret = 0; - accept->state = ACPT_S_BEFORE; + baccept->state = ACPT_S_BEFORE; wc_BioAccept_close_socket(bio); bio->flags = 0; break; case BIO_C_DO_STATE_MACHINE: /* use this one to start the connection */ - ret = (long)wc_BioAccept_state(bio, accept); + ret = (long)wc_BioAccept_state(bio, baccept); break; case BIO_C_SET_ACCEPT: if (ptr != NULL) { if (num == 0) { bio->init = 1; - if (accept->param_addr != NULL) - XFREE(accept->param_addr, 0, DYNAMIC_TYPE_OPENSSL); - accept->param_addr = strdup(ptr); + if (baccept->param_addr != NULL) + XFREE(baccept->param_addr, 0, DYNAMIC_TYPE_OPENSSL); + baccept->param_addr = strdup(ptr); } else if (num == 1) { - accept->accept_nbio = (ptr != NULL); + baccept->accept_nbio = (ptr != NULL); } else if (num == 2) { - if (accept->bio_chain != NULL) - wc_BioFree(accept->bio_chain); - accept->bio_chain = (WOLFCRYPT_BIO *)ptr; + if (baccept->bio_chain != NULL) + wc_BioFree(baccept->bio_chain); + baccept->bio_chain = (WOLFCRYPT_BIO *)ptr; } } break; case BIO_C_SET_NBIO: - accept->nbio = (int)num; + baccept->nbio = (int)num; break; case BIO_C_SET_FD: bio->init = 1; bio->num = *((int *)ptr); - accept->accept_sock = bio->num; - accept->state = ACPT_S_GET_ACCEPT_SOCKET; + baccept->accept_sock = bio->num; + baccept->state = ACPT_S_GET_ACCEPT_SOCKET; bio->shutdown = (int)num; bio->init = 1; break; @@ -3521,8 +3529,8 @@ static long wc_BioAccept_ctrl(WOLFCRYPT_BIO *bio, int cmd, long num, void *ptr) if (bio->init) { ip = (int *)ptr; if (ip != NULL) - *ip = accept->accept_sock; - ret = accept->accept_sock; + *ip = baccept->accept_sock; + ret = baccept->accept_sock; } else ret = -1; @@ -3532,7 +3540,7 @@ static long wc_BioAccept_ctrl(WOLFCRYPT_BIO *bio, int cmd, long num, void *ptr) if (bio->init) { if (ptr != NULL) { pp = (char **)ptr; - *pp = accept->param_addr; + *pp = baccept->param_addr; } else ret = -1; @@ -3559,15 +3567,15 @@ static long wc_BioAccept_ctrl(WOLFCRYPT_BIO *bio, int cmd, long num, void *ptr) break; case BIO_C_SET_BIND_MODE: - accept->bind_mode = (int)num; + baccept->bind_mode = (int)num; break; case BIO_C_GET_BIND_MODE: - ret = (long)accept->bind_mode; + ret = (long)baccept->bind_mode; break; case BIO_C_SET_EX_ARG: - accept->options = (int)num; + baccept->options = (int)num; break; default: @@ -3783,8 +3791,9 @@ static int wc_BioConn_state(WOLFCRYPT_BIO *bio, WOLFCRYPT_BIO_CONNECT *conn) conn->state = BIO_CONN_S_BLOCKED_CONNECT; bio->retry_reason = BIO_RR_CONNECT; } - else + else { WOLFSSL_ERROR(BIO_CONNECT_E); + } goto exit_loop; } else @@ -4150,7 +4159,7 @@ static long wc_BioConn_ctrl(WOLFCRYPT_BIO *bio, int cmd, long num, void *ptr) wc_BioSetNbio(dbio, conn->nbio); - wc_BioSetInfoCallback(dbio, + (void)wc_BioSetInfoCallback(dbio, (WOLFCRYPT_BIO_info_cb *)conn->info_callback); } break; @@ -5263,7 +5272,9 @@ static long wc_BioFile_ctrl(WOLFCRYPT_BIO *bio, int cmd, long num, void *ptr) case BIO_C_FILE_TELL: case BIO_CTRL_INFO: - ret = (long)XFTELL((FILE *)bio->ptr); + XFSEEK((FILE *)bio->ptr, 0, XSEEK_END); + ret = XFTELL((FILE *)bio->ptr); + XREWIND((FILE *)bio->ptr); break; case BIO_C_SET_FILE_PTR: diff --git a/wolfcrypt/test/test.c b/wolfcrypt/test/test.c index f52fbb10c..8bcada06a 100644 --- a/wolfcrypt/test/test.c +++ b/wolfcrypt/test/test.c @@ -6013,7 +6013,7 @@ static int evp_enc_test(const WOLFCRYPT_EVP_CIPHER* type) WOLFCRYPT_EVP_CIPHER_CTX ctx; int i, ret, len = 0, loop, outLen, rand_size, witLen; - byte random[4500], wit[5000], out[5000]; + byte brandom[4500], wit[5000], out[5000]; byte key[] = {0x9d, 0xbf, 0xe2, 0x11, 0xf9, 0xea, 0x19, 0xf3, 0x44, 0x2e, 0xae, 0x19, 0x54, 0x80, 0x87, 0x4c, @@ -6028,7 +6028,7 @@ static int evp_enc_test(const WOLFCRYPT_EVP_CIPHER* type) if (i != 0) return -1198; - i = wc_RNG_GenerateBlock(&rng, random, sizeof(random)); + i = wc_RNG_GenerateBlock(&rng, brandom, sizeof(brandom)); if (i != 0) return -1199; @@ -6036,8 +6036,8 @@ static int evp_enc_test(const WOLFCRYPT_EVP_CIPHER* type) /* Encrypt/Decrypt with round bytes block Update */ - for (rand_size = sizeof(random), loop = 1; loop < 1000; loop++) { - rand_size = sizeof(random) - loop; + for (rand_size = sizeof(brandom), loop = 1; loop < 1000; loop++) { + rand_size = sizeof(brandom) - loop; /* Encrypt */ wc_EVP_CIPHER_CTX_init(&ctx); @@ -6050,7 +6050,7 @@ static int evp_enc_test(const WOLFCRYPT_EVP_CIPHER* type) return -1200; ret = wc_EVP_CipherUpdate(&ctx, out+len, &outLen, - random, rand_size); + brandom, rand_size); if (ret != SSL_SUCCESS) return -1201; @@ -6095,7 +6095,7 @@ static int evp_enc_test(const WOLFCRYPT_EVP_CIPHER* type) if (witLen != rand_size) return -1206; - if (XMEMCMP(random, wit, witLen)) + if (XMEMCMP(brandom, wit, witLen)) return -1207; } @@ -6264,20 +6264,21 @@ int bio_md_test(void) return -1068; /* Ensure all of our data is pushed all the way to the BIO */ - wc_BioFlush(bmd); + if (wc_BioFlush(bmd) < 0) + return -1069; /* get the digest */ XMEMSET(digest, 0, sizeof(digest)); size = wc_BioGets(bmd, digest, sizeof(digest)); if (size <= 0) - return -1069; - - if (size != wc_EVP_MD_size(hash_list[i].type)) return -1070; - if (XMEMCMP(digest, hash_list[i].digest, size)) + if (size != wc_EVP_MD_size(hash_list[i].type)) return -1071; + if (XMEMCMP(digest, hash_list[i].digest, size)) + return -1072; + /* free BIO */ wc_BioFreeAll(bmd); @@ -6292,22 +6293,22 @@ int bio_b64_test(void) WOLFCRYPT_BIO *b64, *file; int i, loop, rand_size; int total, w; - byte random[9000], wit[9000]; + byte brandom[9000], wit[9000]; WC_RNG rng; i = wc_InitRng(&rng); if (i != 0) return -1198; - i = wc_RNG_GenerateBlock(&rng, random, sizeof(random)); + i = wc_RNG_GenerateBlock(&rng, brandom, sizeof(brandom)); if (i != 0) return -1199; wc_FreeRng(&rng); - /* Encode/Decode random data */ - for (rand_size = sizeof(random), loop = 1; loop < 1000; loop++) { - rand_size = sizeof(random) - loop; + /* Encode/Decode brandom data */ + for (rand_size = sizeof(brandom), loop = 1; loop < 1000; loop++) { + rand_size = sizeof(brandom) - loop; /* Create a buffered file BIO for writing */ if (loop & 1) @@ -6329,7 +6330,7 @@ int bio_b64_test(void) * It checks for errors as if the underlying file were non-blocking */ for (total = 0; total < rand_size; total += w) { - w = wc_BioWrite(b64, random + total, + w = wc_BioWrite(b64, brandom + total, rand_size - (int)total); if (w <= 0) { if (wc_BioShouldRetry(b64)) { @@ -6341,7 +6342,8 @@ int bio_b64_test(void) } /* Ensure all of our data is pushed all the way to the file */ - wc_BioFlush(b64); + if (wc_BioFlush(b64) < 0) + return -1070; /* free BIO chain cipher-file */ wc_BioFreeAll(b64); @@ -6354,7 +6356,7 @@ int bio_b64_test(void) else file = wc_BioNewFile("test_b64_nonl", "r"); if (file == NULL) - return -1070; + return -1071; /* Create a base64 encoding filter BIO */ b64 = wc_BioNew(wc_Bio_f_base64()); @@ -6385,7 +6387,7 @@ int bio_b64_test(void) if (total != rand_size) return -1079; - if (XMEMCMP(random, wit, total)) + if (XMEMCMP(brandom, wit, total)) return -1080; } @@ -6397,13 +6399,13 @@ int bio_b64_test(void) static int bio_filter_test(const WOLFCRYPT_EVP_CIPHER* cipher_type) { int total, i, w, rand_size; - WOLFCRYPT_BIO *cipher, *buffer, *file, *b64; + WOLFCRYPT_BIO *cipher, *buff, *file, *b64; byte key[] = { 0x63, 0x21, 0x5f, 0x9b, 0xdc, 0x74, 0xcc, 0x90, 0x96, 0x43, 0xd1, 0xcc, 0x7a, 0xb2, 0x27, 0xc5 }; byte iv[] = { 0x1a, 0x4a, 0xf8, 0xd5, 0xd0, 0x09, 0xff, 0x09, 0xd6, 0xb3, 0x72, 0x3d, 0xc4, 0xed, 0x9c, 0x8e }; - byte random[4200], wit[4200]; + byte brandom[4200], wit[4200]; WC_RNG rng; @@ -6411,15 +6413,15 @@ static int bio_filter_test(const WOLFCRYPT_EVP_CIPHER* cipher_type) if (w != 0) return 1060; - w = wc_RNG_GenerateBlock(&rng, random, sizeof(random)); + w = wc_RNG_GenerateBlock(&rng, brandom, sizeof(brandom)); if (w != 0) return 1061; wc_FreeRng(&rng); - for (rand_size = sizeof(random), i = 1; i < 300; i++) { + for (rand_size = sizeof(brandom), i = 1; i < 300; i++) { - rand_size = sizeof(random) - i; + rand_size = sizeof(brandom) - i; /* Create a buffered file BIO for writing */ if (i & 1) @@ -6430,8 +6432,8 @@ static int bio_filter_test(const WOLFCRYPT_EVP_CIPHER* cipher_type) return -1062; /* Create a buffering filter BIO to buffer writes to the file */ - buffer = wc_BioNew(wc_Bio_f_buffer()); - if (buffer == NULL) + buff = wc_BioNew(wc_Bio_f_buffer()); + if (buff == NULL) return -1063; /* Create a cipher filter BIO */ @@ -6457,10 +6459,10 @@ static int bio_filter_test(const WOLFCRYPT_EVP_CIPHER* cipher_type) if (wc_BioPush(cipher, b64) == NULL) return -1066; - if (wc_BioPush(b64, buffer) == NULL) + if (wc_BioPush(b64, buff) == NULL) return -1067; - if (wc_BioPush(buffer, file) == NULL) + if (wc_BioPush(buff, file) == NULL) return -1068; @@ -6468,7 +6470,7 @@ static int bio_filter_test(const WOLFCRYPT_EVP_CIPHER* cipher_type) * It checks for errors as if the underlying file were non-blocking */ for (total = 0; total < rand_size; total += w) { - w = wc_BioWrite(cipher, random + total, + w = wc_BioWrite(cipher, brandom + total, rand_size - (int)total); if (w <= 0) { if (wc_BioShouldRetry(cipher)) { @@ -6480,7 +6482,8 @@ static int bio_filter_test(const WOLFCRYPT_EVP_CIPHER* cipher_type) } /* Ensure all of our data is pushed all the way to the file */ - wc_BioFlush(cipher); + if (wc_BioFlush(cipher) < 0) + return - 1069; /* get b64 BIO to free it only at first (test purpose) */ wc_BioPop(b64); @@ -6502,8 +6505,8 @@ static int bio_filter_test(const WOLFCRYPT_EVP_CIPHER* cipher_type) return -1070; /* Create a buffering filter BIO to buffer writes to the file */ - buffer = wc_BioNew(wc_Bio_f_buffer()); - if (buffer == NULL) + buff = wc_BioNew(wc_Bio_f_buffer()); + if (buff == NULL) return -1071; /* Create a cipher filter BIO */ @@ -6525,10 +6528,10 @@ static int bio_filter_test(const WOLFCRYPT_EVP_CIPHER* cipher_type) if (wc_BioPush(cipher, b64) == NULL) return -1074; - if (wc_BioPush(b64, buffer) == NULL) + if (wc_BioPush(b64, buff) == NULL) return -1075; - if (wc_BioPush(buffer, file) == NULL) + if (wc_BioPush(buff, file) == NULL) return -1077; /* This loop read the data from the file. @@ -6564,7 +6567,7 @@ static int bio_filter_test(const WOLFCRYPT_EVP_CIPHER* cipher_type) if (total != rand_size) return -1079; - if (XMEMCMP(random, wit, total)) + if (XMEMCMP(brandom, wit, total)) return -1080; } @@ -6938,7 +6941,8 @@ int bio_accept_ssl_test(void) if (buf[0] == '\r' || buf[0] == '\n') { wc_BioPuts(b_rw, "CLOSE\n"); - wc_BioFlush(b_rw); + if (wc_BioFlush(b_rw) < 0) + return -3015; printf("Done -> close\n"); break; } @@ -6946,7 +6950,8 @@ int bio_accept_ssl_test(void) /* Send response */ wc_BioPuts(b_rw, "ACK: "); wc_BioPuts(b_rw, buf); - wc_BioFlush(b_rw); + if (wc_BioFlush(b_rw) < 0) + return -3016; } /* close connection */ @@ -7015,13 +7020,8 @@ int bio_test(void) return -1006; ret = wc_BioTell(bio); -#ifdef USE_WINDOWS_API - if (ret != 0) - return -1007; -#else if (ret != (int)strlen(buf)+1) return -1007; -#endif /* write */ ret = wc_BioPrintf(bio, "%s\n", buf); @@ -7034,7 +7034,7 @@ int bio_test(void) /* reset, before reading */ ret = wc_BioReset(bio); - if (ret != 0) + if (ret < 0) return -1010; /* read */ @@ -7068,16 +7068,18 @@ int bio_test(void) if (ret != 0) return -1053; - wc_BioReset(bio); - - ret = wc_BioWrite(bio, buf, (int)strlen(buf)); - if (ret != (int)strlen(buf)) + ret = wc_BioReset(bio); + if (ret < 0) return -1054; ret = wc_BioWrite(bio, buf, (int)strlen(buf)); if (ret != (int)strlen(buf)) return -1055; + ret = wc_BioWrite(bio, buf, (int)strlen(buf)); + if (ret != (int)strlen(buf)) + return -1056; + XMEMSET(buf_w, 0, sizeof(buf_w)); ret = wc_BioRead(bio, buf_w, 5);