summaryrefslogtreecommitdiff
path: root/security/openssl/files/patch-hw_cryptodev.c-cloning
blob: 82c159a3252855899b0f2f34ae22487dddf3cef3 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
Index: crypto/engine/hw_cryptodev.c
===================================================================
RCS file: /home/ncvs/src/crypto/openssl/crypto/engine/hw_cryptodev.c,v
retrieving revision 1.1.1.3
diff -u -r1.1.1.3 hw_cryptodev.c
--- crypto/engine/hw_cryptodev.c	17 Mar 2004 15:44:46 -0000	1.1.1.3
+++ crypto/engine/hw_cryptodev.c	18 Jan 2005 12:27:17 -0000
@@ -180,6 +180,10 @@
 		return (-1);
 	if (ioctl(fd, CRIOGET, &retfd) == -1)
 		return (-1);
+	if (retfd == -1)
+		retfd = fd;
+	else
+		close(fd);
 
 	/* close on exec */
 	if (fcntl(retfd, F_SETFD, 1) == -1) {
Index: crypto/evp/openbsd_hw.c
===================================================================
RCS file: /home/ncvs/src/crypto/openssl/crypto/evp/openbsd_hw.c,v
retrieving revision 1.1.1.1
diff -u -r1.1.1.1 openbsd_hw.c
--- crypto/evp/openbsd_hw.c	28 Jan 2003 21:24:39 -0000	1.1.1.1
+++ crypto/evp/openbsd_hw.c	18 Jan 2005 12:26:45 -0000
@@ -109,7 +109,10 @@
 	    dev_failed=1;
 	    return 0;
 	    }
-	close(cryptodev_fd);
+	if (fd == -1)
+		fd = cryptodev_fd;
+	else
+		close(cryptodev_fd);
 	}
     assert(ses);
     memset(ses,'\0',sizeof *ses);