summaryrefslogtreecommitdiff
path: root/src/lib/libcrypto/engine/eng_init.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libcrypto/engine/eng_init.c')
-rw-r--r--src/lib/libcrypto/engine/eng_init.c78
1 files changed, 39 insertions, 39 deletions
diff --git a/src/lib/libcrypto/engine/eng_init.c b/src/lib/libcrypto/engine/eng_init.c
index 870c456668..540f8957ca 100644
--- a/src/lib/libcrypto/engine/eng_init.c
+++ b/src/lib/libcrypto/engine/eng_init.c
@@ -7,7 +7,7 @@
7 * are met: 7 * are met:
8 * 8 *
9 * 1. Redistributions of source code must retain the above copyright 9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer. 10 * notice, this list of conditions and the following disclaimer.
11 * 11 *
12 * 2. Redistributions in binary form must reproduce the above copyright 12 * 2. Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in 13 * notice, this list of conditions and the following disclaimer in
@@ -57,30 +57,31 @@
57 57
58/* Initialise a engine type for use (or up its functional reference count 58/* Initialise a engine type for use (or up its functional reference count
59 * if it's already in use). This version is only used internally. */ 59 * if it's already in use). This version is only used internally. */
60int engine_unlocked_init(ENGINE *e) 60int
61 { 61engine_unlocked_init(ENGINE *e)
62{
62 int to_return = 1; 63 int to_return = 1;
63 64
64 if((e->funct_ref == 0) && e->init) 65 if ((e->funct_ref == 0) && e->init)
65 /* This is the first functional reference and the engine 66 /* This is the first functional reference and the engine
66 * requires initialisation so we do it now. */ 67 * requires initialisation so we do it now. */
67 to_return = e->init(e); 68 to_return = e->init(e);
68 if(to_return) 69 if (to_return) {
69 {
70 /* OK, we return a functional reference which is also a 70 /* OK, we return a functional reference which is also a
71 * structural reference. */ 71 * structural reference. */
72 e->struct_ref++; 72 e->struct_ref++;
73 e->funct_ref++; 73 e->funct_ref++;
74 engine_ref_debug(e, 0, 1) 74 engine_ref_debug(e, 0, 1)
75 engine_ref_debug(e, 1, 1) 75 engine_ref_debug(e, 1, 1)
76 }
77 return to_return;
78 } 76 }
77 return to_return;
78}
79 79
80/* Free a functional reference to a engine type. This version is only used 80/* Free a functional reference to a engine type. This version is only used
81 * internally. */ 81 * internally. */
82int engine_unlocked_finish(ENGINE *e, int unlock_for_handlers) 82int
83 { 83engine_unlocked_finish(ENGINE *e, int unlock_for_handlers)
84{
84 int to_return = 1; 85 int to_return = 1;
85 86
86 /* Reduce the functional reference count here so if it's the terminating 87 /* Reduce the functional reference count here so if it's the terminating
@@ -91,58 +92,57 @@ int engine_unlocked_finish(ENGINE *e, int unlock_for_handlers)
91 * 2 to 0 without either calling finish(). */ 92 * 2 to 0 without either calling finish(). */
92 e->funct_ref--; 93 e->funct_ref--;
93 engine_ref_debug(e, 1, -1); 94 engine_ref_debug(e, 1, -1);
94 if((e->funct_ref == 0) && e->finish) 95 if ((e->funct_ref == 0) && e->finish) {
95 { 96 if (unlock_for_handlers)
96 if(unlock_for_handlers)
97 CRYPTO_w_unlock(CRYPTO_LOCK_ENGINE); 97 CRYPTO_w_unlock(CRYPTO_LOCK_ENGINE);
98 to_return = e->finish(e); 98 to_return = e->finish(e);
99 if(unlock_for_handlers) 99 if (unlock_for_handlers)
100 CRYPTO_w_lock(CRYPTO_LOCK_ENGINE); 100 CRYPTO_w_lock(CRYPTO_LOCK_ENGINE);
101 if(!to_return) 101 if (!to_return)
102 return 0; 102 return 0;
103 } 103 }
104 104
105 /* Release the structural reference too */ 105 /* Release the structural reference too */
106 if(!engine_free_util(e, 0)) 106 if (!engine_free_util(e, 0)) {
107 { 107 ENGINEerr(ENGINE_F_ENGINE_UNLOCKED_FINISH,
108 ENGINEerr(ENGINE_F_ENGINE_UNLOCKED_FINISH,ENGINE_R_FINISH_FAILED); 108 ENGINE_R_FINISH_FAILED);
109 return 0; 109 return 0;
110 }
111 return to_return;
112 } 110 }
111 return to_return;
112}
113 113
114/* The API (locked) version of "init" */ 114/* The API (locked) version of "init" */
115int ENGINE_init(ENGINE *e) 115int
116 { 116ENGINE_init(ENGINE *e)
117{
117 int ret; 118 int ret;
118 if(e == NULL) 119
119 { 120 if (e == NULL) {
120 ENGINEerr(ENGINE_F_ENGINE_INIT,ERR_R_PASSED_NULL_PARAMETER); 121 ENGINEerr(ENGINE_F_ENGINE_INIT, ERR_R_PASSED_NULL_PARAMETER);
121 return 0; 122 return 0;
122 } 123 }
123 CRYPTO_w_lock(CRYPTO_LOCK_ENGINE); 124 CRYPTO_w_lock(CRYPTO_LOCK_ENGINE);
124 ret = engine_unlocked_init(e); 125 ret = engine_unlocked_init(e);
125 CRYPTO_w_unlock(CRYPTO_LOCK_ENGINE); 126 CRYPTO_w_unlock(CRYPTO_LOCK_ENGINE);
126 return ret; 127 return ret;
127 } 128}
128 129
129/* The API (locked) version of "finish" */ 130/* The API (locked) version of "finish" */
130int ENGINE_finish(ENGINE *e) 131int
131 { 132ENGINE_finish(ENGINE *e)
133{
132 int to_return = 1; 134 int to_return = 1;
133 135
134 if(e == NULL) 136 if (e == NULL) {
135 { 137 ENGINEerr(ENGINE_F_ENGINE_FINISH, ERR_R_PASSED_NULL_PARAMETER);
136 ENGINEerr(ENGINE_F_ENGINE_FINISH,ERR_R_PASSED_NULL_PARAMETER);
137 return 0; 138 return 0;
138 } 139 }
139 CRYPTO_w_lock(CRYPTO_LOCK_ENGINE); 140 CRYPTO_w_lock(CRYPTO_LOCK_ENGINE);
140 to_return = engine_unlocked_finish(e, 1); 141 to_return = engine_unlocked_finish(e, 1);
141 CRYPTO_w_unlock(CRYPTO_LOCK_ENGINE); 142 CRYPTO_w_unlock(CRYPTO_LOCK_ENGINE);
142 if(!to_return) 143 if (!to_return) {
143 { 144 ENGINEerr(ENGINE_F_ENGINE_FINISH, ENGINE_R_FINISH_FAILED);
144 ENGINEerr(ENGINE_F_ENGINE_FINISH,ENGINE_R_FINISH_FAILED);
145 return 0; 145 return 0;
146 }
147 return to_return;
148 } 146 }
147 return to_return;
148}