From 2c1adf355f8b64837f8f85e89a621848b8b8db54 Mon Sep 17 00:00:00 2001 From: bcook <> Date: Thu, 10 Sep 2015 18:53:50 +0000 Subject: [PATCH] Add support for building arc4random with MSVC. By default, MSVC's stdlib.h defines min(), so we need to spell out something less common to avoid picking it up. ok deraadt@ beck@ miod@ --- src/lib/libc/crypt/arc4random.c | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/lib/libc/crypt/arc4random.c b/src/lib/libc/crypt/arc4random.c index 75cdff3b..5afc6a15 100644 --- a/src/lib/libc/crypt/arc4random.c +++ b/src/lib/libc/crypt/arc4random.c @@ -1,4 +1,4 @@ -/* $OpenBSD: arc4random.c,v 1.52 2015/01/16 16:48:51 deraadt Exp $ */ +/* $OpenBSD: arc4random.c,v 1.53 2015/09/10 18:53:50 bcook Exp $ */ /* * Copyright (c) 1996, David Mazieres @@ -36,12 +36,13 @@ #define KEYSTREAM_ONLY #include "chacha_private.h" -#define min(a, b) ((a) < (b) ? (a) : (b)) -#ifdef __GNUC__ +#define minimum(a, b) ((a) < (b) ? (a) : (b)) + +#if defined(__GNUC__) || defined(_MSC_VER) #define inline __inline -#else /* !__GNUC__ */ +#else /* __GNUC__ || _MSC_VER */ #define inline -#endif /* !__GNUC__ */ +#endif /* !__GNUC__ && !_MSC_VER */ #define KEYSZ 32 #define IVSZ 8 @@ -127,7 +128,7 @@ _rs_rekey(u_char *dat, size_t datlen) if (dat) { size_t i, m; - m = min(datlen, KEYSZ + IVSZ); + m = minimum(datlen, KEYSZ + IVSZ); for (i = 0; i < m; i++) rsx->rs_buf[i] ^= dat[i]; } @@ -147,7 +148,7 @@ _rs_random_buf(void *_buf, size_t n) _rs_stir_if_needed(n); while (n > 0) { if (rs->rs_have > 0) { - m = min(n, rs->rs_have); + m = minimum(n, rs->rs_have); keystream = rsx->rs_buf + sizeof(rsx->rs_buf) - rs->rs_have; memcpy(buf, keystream, m);