From ddc2e14a468c9801b5352e8c959eafeb18b4e3b4 Mon Sep 17 00:00:00 2001 From: Aidan Keefe Date: Tue, 1 Sep 2026 11:43:51 -0600 Subject: [PATCH] fixed error handling in client.c --- src/client/client.c | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/src/client/client.c b/src/client/client.c index e4364b33..4015a218 100644 --- a/src/client/client.c +++ b/src/client/client.c @@ -857,10 +857,11 @@ static void EarlyData(WOLFSSL_CTX* ctx, WOLFSSL* ssl, const char* msg, { int err; int ret; + int written = 0; do { err = 0; /* reset error */ - ret = wolfSSL_write_early_data(ssl, msg, msgSz, &msgSz); + ret = wolfSSL_write_early_data(ssl, msg, msgSz, &written); if (ret <= 0) { err = wolfSSL_get_error(ssl, 0); #ifdef WOLFSSL_ASYNC_CRYPT @@ -872,15 +873,16 @@ static void EarlyData(WOLFSSL_CTX* ctx, WOLFSSL* ssl, const char* msg, } } while (err == WC_PENDING_E); if (ret != msgSz) { - printf("SSL_write_early_data msg error %d, %s\n", err, - wolfSSL_ERR_error_string(err, buffer)); + err = wolfSSL_get_error(ssl, ret); + printf("SSL_write_early_data msg error %d, %s, wrote %d of %d\n", + err, wolfSSL_ERR_error_string(err, buffer), written, msgSz); wolfSSL_free(ssl); ssl = NULL; wolfSSL_CTX_free(ctx); ctx = NULL; err_sys("SSL_write_early_data failed"); } do { err = 0; /* reset error */ - ret = wolfSSL_write_early_data(ssl, msg, msgSz, &msgSz); + ret = wolfSSL_write_early_data(ssl, msg, msgSz, &written); if (ret <= 0) { err = wolfSSL_get_error(ssl, 0); #ifdef WOLFSSL_ASYNC_CRYPT @@ -892,8 +894,9 @@ static void EarlyData(WOLFSSL_CTX* ctx, WOLFSSL* ssl, const char* msg, } } while (err == WC_PENDING_E); if (ret != msgSz) { - printf("SSL_write_early_data msg error %d, %s\n", err, - wolfSSL_ERR_error_string(err, buffer)); + err = wolfSSL_get_error(ssl, ret); + printf("SSL_write_early_data msg error %d, %s, wrote %d of %d\n", + err, wolfSSL_ERR_error_string(err, buffer), written, msgSz); wolfSSL_free(ssl); wolfSSL_CTX_free(ctx); err_sys("SSL_write_early_data failed");