Merge branch 'vendor/OPENSSL'
authorSascha Wildner <saw@online.de>
Fri, 4 Dec 2015 20:45:43 +0000 (21:45 +0100)
committerSascha Wildner <saw@online.de>
Fri, 4 Dec 2015 20:45:43 +0000 (21:45 +0100)
1  2 
crypto/openssl/crypto/engine/eng_cryptodev.c

@@@ -32,9 -32,9 +32,9 @@@
  #include <openssl/bn.h>
  
  #if (defined(__unix__) || defined(unix)) && !defined(USG) && \
 -        (defined(OpenBSD) || defined(__FreeBSD__))
 +        (defined(OpenBSD) || defined(__FreeBSD__) || defined(__DragonFly__))
  # include <sys/param.h>
 -# if (OpenBSD >= 200112) || ((__FreeBSD_version >= 470101 && __FreeBSD_version < 500000) || __FreeBSD_version >= 500041)
 +# if (OpenBSD >= 200112) || ((__FreeBSD_version >= 470101 && __FreeBSD_version < 500000) || __FreeBSD_version >= 500041) || (__DragonFly_version >= 200500)
  #  define HAVE_CRYPTODEV
  # endif
  # if (OpenBSD >= 200110)
@@@ -1230,15 -1230,18 +1230,18 @@@ static DSA_SIG *cryptodev_dsa_do_sign(c
      if (cryptodev_asym(&kop, BN_num_bytes(dsa->q), r,
                         BN_num_bytes(dsa->q), s) == 0) {
          dsaret = DSA_SIG_new();
+         if (dsaret == NULL)
+             goto err;
          dsaret->r = r;
          dsaret->s = s;
+         r = s = NULL;
      } else {
          const DSA_METHOD *meth = DSA_OpenSSL();
-         BN_free(r);
-         BN_free(s);
          dsaret = (meth->dsa_do_sign) (dgst, dlen, dsa);
      }
   err:
+     BN_free(r);
+     BN_free(s);
      kop.crk_param[0].crp_p = NULL;
      zapparams(&kop);
      return (dsaret);