Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions src/ssl.c
Original file line number Diff line number Diff line change
Expand Up @@ -14469,6 +14469,9 @@ WOLFSSL_SESSION* ClientSessionToSession(const WOLFSSL_SESSION* session)
WOLFSSL_MSG("Client cache serverRow or serverIdx invalid");
error = -1;
}
/* Prevent memory access before clientSession->serverRow and
* clientSession->serverIdx are sanitized. */
XFENCE();
if (error == 0) {
/* Lock row */
sessRow = &SessionCache[clientSession->serverRow];
Expand Down
27 changes: 27 additions & 0 deletions wolfssl/wolfcrypt/wc_port.h
Original file line number Diff line number Diff line change
Expand Up @@ -1180,6 +1180,33 @@ WOLFSSL_ABI WOLFSSL_API int wolfCrypt_Cleanup(void);
#endif
#endif

#ifdef WOLF_C99
Comment thread
SparkiDev marked this conversation as resolved.
/* use alternate keyword for compatibility with -std=c99 */
#define XASM_VOLATILE(a) __asm__ volatile(a)
#elif defined(__IAR_SYSTEMS_ICC__)
#define XASM_VOLATILE(a) asm volatile(a)
#elif defined(__KEIL__)
#define XASM_VOLATILE(a) __asm volatile(a)
#else
#define XASM_VOLATILE(a) __asm__ __volatile__(a)
#endif

#ifndef WOLFSSL_NO_FENCE
Comment thread
SparkiDev marked this conversation as resolved.
#if defined (__i386__) || defined(__x86_64__)
#define XFENCE() XASM_VOLATILE("lfence")
#elif defined (__arm__) || defined(__aarch64__)
#define XFENCE() XASM_VOLATILE("isb")
#elif defined(__riscv)
#define XFENCE() XASM_VOLATILE("fence")
#elif defined(__PPC__)
#define XFENCE() XASM_VOLATILE("isync; sync")
#else
#define XFENCE() do{}while(0)
#endif
#else
#define XFENCE() do{}while(0)
Comment thread
SparkiDev marked this conversation as resolved.
#endif


/* AFTER user_settings.h is loaded,
** determine if POSIX multi-threaded: HAVE_PTHREAD */
Expand Down