1
0
mirror of https://git.tartarus.org/simon/putty.git synced 2025-07-01 03:22:48 -05:00

Make smemeq return unsigned, not bool.

bool is dangerous in a time-safe context, because C compilers might
insert a control flow divergence to implement the implicit
normalisation of nonzero integers to 1 when you assign to a bool.
Everywhere else time-safe, I avoid using it; but smemeq has been an
exception until now, because the response to smemeq returning failure
was to do an obvious protocol-level divergence _anyway_ (like
disconnecting due to MAC mismatch).

But I'm about to want to use smemeq in a context where I use the
result _subtly_ and don't want to give away what it is, so now it's
time to get rid of that bool and have smemeq return unsigned.
This commit is contained in:
Simon Tatham
2022-04-15 17:18:32 +01:00
parent d5af33da53
commit 31db2e67bb
2 changed files with 4 additions and 4 deletions

View File

@ -8,7 +8,7 @@
#include "defs.h"
#include "misc.h"
bool smemeq(const void *av, const void *bv, size_t len)
unsigned smemeq(const void *av, const void *bv, size_t len)
{
const unsigned char *a = (const unsigned char *)av;
const unsigned char *b = (const unsigned char *)bv;