Use sh explicitely to run point.sh
[openssl.git] / crypto / engine / eng_cryptodev.c
index a658528d315ccedd4e0aba844a001e3f44457f3a..f8a4a292b5b7e2436c455faf4263fde4845ad472 100644 (file)
 #include <openssl/engine.h>
 #include <openssl/evp.h>
 
-#if (defined(__unix__) || defined(unix)) && !defined(USG)
+#if (defined(__unix__) || defined(unix)) && !defined(USG) && \
+       (defined(OpenBSD) || defined(__FreeBSD_version))
 #include <sys/param.h>
-# if (OpenBSD >= 200112) || ((__FreeBSD_version >= 470101 && __FreeBSD_version < 50000) || __FreeBSD_version >= 50041)
+# if (OpenBSD >= 200112) || ((__FreeBSD_version >= 470101 && __FreeBSD_version < 500000) || __FreeBSD_version >= 500041)
 #  define HAVE_CRYPTODEV
 # endif
 # if (OpenBSD >= 200110)
@@ -1054,14 +1055,17 @@ ENGINE_load_cryptodev(void)
 
        if (engine == NULL)
                return;
-       if ((fd = get_dev_crypto()) < 0)
+       if ((fd = get_dev_crypto()) < 0) {
+               ENGINE_free(engine);
                return;
+       }
 
        /*
         * find out what asymmetric crypto algorithms we support
         */
        if (ioctl(fd, CIOCASYMFEAT, &cryptodev_asymfeat) == -1) {
                close(fd);
+               ENGINE_free(engine);
                return;
        }
        close(fd);