bool exact_str_match(const char *str1, const char *str2, uint32_t len)
{
    volatile uint32_t match = 0;

    // Access through volatile ptrs to prevent compiler optimizations that
    // might leak timing information.
    const char volatile * volatile str1_v = str1;
    const char volatile * volatile str2_v = str2;

    for(uint32_t i = 0; i < len && i < CURRENT_WORD_BUF; i++)
    {
        if(str1_v[i] == str2_v[i])
        {
            match++;
        } else {
            match--;
        }
    }

    return match == len;
}
bool exact_str_match(const char *str1, const char *str2, uint32_t len)
{
    volatile uint32_t match = 0;

     
     
    const char volatile * volatile str1_v = str1;
    const char volatile * volatile str2_v = str2;

    for(uint32_t i = 0; i < len && i < CURRENT_WORD_BUF; i++)
    {
        if(str1_v[i] == str2_v[i])
        {
            match++;
        } else {
            match--;
        }
    }

    return match == len;
}