diff --git a/wolfssl/test.h b/wolfssl/test.h index b39b7d21a..27e7d833e 100644 --- a/wolfssl/test.h +++ b/wolfssl/test.h @@ -1684,6 +1684,16 @@ static int wolfsentry_setup( { struct wolfsentry_route_table *table; +#ifdef WOLFSENTRY_THREADSAFE + ret = WOLFSENTRY_SHARED_EX(*_wolfsentry); + if (ret < 0) { + fprintf(stderr, "wolfsentry shared lock op failed: " + WOLFSENTRY_ERROR_FMT ".\n", + WOLFSENTRY_ERROR_FMT_ARGS(ret)); + return ret; + } +#endif + if ((ret = wolfsentry_route_get_main_table( WOLFSENTRY_CONTEXT_ARGS_OUT_EX(*_wolfsentry), &table)) < 0) @@ -1691,6 +1701,11 @@ static int wolfsentry_setup( fprintf(stderr, "wolfsentry_route_get_main_table() returned " WOLFSENTRY_ERROR_FMT "\n", WOLFSENTRY_ERROR_FMT_ARGS(ret)); +#ifdef WOLFSENTRY_THREADSAFE + WOLFSENTRY_WARN_ON_FAILURE( + wolfsentry_context_unlock( + WOLFSENTRY_CONTEXT_ARGS_OUT_EX(*_wolfsentry))); +#endif return ret; } @@ -1708,6 +1723,11 @@ static int wolfsentry_setup( "wolfsentry_route_table_default_policy_set() returned " WOLFSENTRY_ERROR_FMT "\n", WOLFSENTRY_ERROR_FMT_ARGS(ret)); +#ifdef WOLFSENTRY_THREADSAFE + WOLFSENTRY_WARN_ON_FAILURE( + wolfsentry_context_unlock( + WOLFSENTRY_CONTEXT_ARGS_OUT_EX(*_wolfsentry))); +#endif return ret; } @@ -1742,6 +1762,11 @@ static int wolfsentry_setup( fprintf(stderr, "wolfsentry_route_insert() returned " WOLFSENTRY_ERROR_FMT "\n", WOLFSENTRY_ERROR_FMT_ARGS(ret)); +#ifdef WOLFSENTRY_THREADSAFE + WOLFSENTRY_WARN_ON_FAILURE( + wolfsentry_context_unlock( + WOLFSENTRY_CONTEXT_ARGS_OUT_EX(*_wolfsentry))); +#endif return ret; } } else if (WOLFSENTRY_MASKIN_BITS(route_flags, WOLFSENTRY_ROUTE_FLAG_DIRECTION_IN)) { @@ -1757,6 +1782,11 @@ static int wolfsentry_setup( "wolfsentry_route_table_default_policy_set() returned " WOLFSENTRY_ERROR_FMT "\n", WOLFSENTRY_ERROR_FMT_ARGS(ret)); +#ifdef WOLFSENTRY_THREADSAFE + WOLFSENTRY_WARN_ON_FAILURE( + wolfsentry_context_unlock( + WOLFSENTRY_CONTEXT_ARGS_OUT_EX(*_wolfsentry))); +#endif return ret; } @@ -1791,9 +1821,19 @@ static int wolfsentry_setup( fprintf(stderr, "wolfsentry_route_insert() returned " WOLFSENTRY_ERROR_FMT "\n", WOLFSENTRY_ERROR_FMT_ARGS(ret)); +#ifdef WOLFSENTRY_THREADSAFE + WOLFSENTRY_WARN_ON_FAILURE( + wolfsentry_context_unlock( + WOLFSENTRY_CONTEXT_ARGS_OUT_EX(*_wolfsentry))); +#endif return ret; } } +#ifdef WOLFSENTRY_THREADSAFE + WOLFSENTRY_WARN_ON_FAILURE( + wolfsentry_context_unlock( + WOLFSENTRY_CONTEXT_ARGS_OUT_EX(*_wolfsentry))); +#endif } #if defined(WOLFSENTRY_THREADSAFE) && defined(HAVE_WOLFSENTRY_API_0v8)