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;
        uintptr_t mask;
        union {


On Thu, Jul 14, 2016 at 8:39 AM, Bob Beck <b...@openbsd.org> wrote:

> I'm ok with this.
>
>
> On Thu, Jul 14, 2016 at 4:57 AM, Kinichiro Inoguchi <
> kinichiro.inogu...@gmail.com> wrote:
>
> > Hi,
> >
> > When I build LibreSSL portable on HP-UX 11.3 with HP C/aC++ compiler,
> > this warning is detected.
> >
> > ...
> > "bn/bn_nist.c", line 611: warning #2549-D: variable "buf" is used before
> > its value is set
> > nist_set_224(buf.bn, c_d, 14, 13, 12, 11, 10, 9, 8);
> > ^
> > ...
> >
> > To initialize these variables before using, I would like to apply the
> > patch.
> > OK ?
> >
> > Here is original topic on GitHub.
> > https://github.com/libressl-portable/openbsd/pull/19
> >
> > Best Regards,
> >
> > kinichiro inoguchi
> >
> >
>

Reply via email to