Brent Cook wrote:
> I didn't notice it at first, because the patch wasn't inline, but the union
> here needed to be initialized with memset or use a different kind of
> initializer.
>
> I went with the memset on top of your patch:
>
> --- bn_nist.c 17 Jul 2016 21:21:40 -0000 1.16
> +++ bn_nist.c 17 Jul 2016 22:00:45 -0000
> @@ -59,6 +59,7 @@
> #include <machine/endian.h>
>
> #include <stdint.h>
> +#include <string.h>
>
> #include "bn_lcl.h"
>
> @@ -568,7 +569,8 @@ BN_nist_mod_224(BIGNUM *r, const BIGNUM
> BN_ULONG bn[BN_NIST_224_TOP];
> unsigned int ui[BN_NIST_224_TOP *
> sizeof(BN_ULONG) / sizeof(unsigned int)];
> - } buf = {0};
> + } buf;
> + memset(&buf, 0, sizeof(buf));
> BN_ULONG c_d[BN_NIST_224_TOP], *res;
ok, but please don't mix code and decls like that.