diff options
author | tb <> | 2023-04-27 08:04:40 +0000 |
---|---|---|
committer | tb <> | 2023-04-27 08:04:40 +0000 |
commit | d2685eaa06a05e124c201a6a9666a7ec69fe764e (patch) | |
tree | b435ddce6722522f24ff84fdf5ee5951614907a9 /src | |
parent | ece2572a7345902fd6b7f059dfe2253775c43db1 (diff) | |
download | openbsd-d2685eaa06a05e124c201a6a9666a7ec69fe764e.tar.gz openbsd-d2685eaa06a05e124c201a6a9666a7ec69fe764e.tar.bz2 openbsd-d2685eaa06a05e124c201a6a9666a7ec69fe764e.zip |
Rework simple allocation and free functions in x509_policy.c
Use calloc() instead of malloc/memset and make free functions look the
same as elsewhere in the tree.
ok beck jsing
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/libcrypto/x509/x509_policy.c | 68 |
1 files changed, 36 insertions, 32 deletions
diff --git a/src/lib/libcrypto/x509/x509_policy.c b/src/lib/libcrypto/x509/x509_policy.c index cb8e7d1178..85286080f1 100644 --- a/src/lib/libcrypto/x509/x509_policy.c +++ b/src/lib/libcrypto/x509/x509_policy.c | |||
@@ -1,4 +1,4 @@ | |||
1 | /* $OpenBSD: x509_policy.c,v 1.12 2023/04/26 22:09:07 tb Exp $ */ | 1 | /* $OpenBSD: x509_policy.c,v 1.13 2023/04/27 08:04:40 tb Exp $ */ |
2 | /* | 2 | /* |
3 | * Copyright (c) 2022, Google Inc. | 3 | * Copyright (c) 2022, Google Inc. |
4 | * | 4 | * |
@@ -193,30 +193,32 @@ is_any_policy(const ASN1_OBJECT *obj) | |||
193 | static void | 193 | static void |
194 | x509_policy_node_free(X509_POLICY_NODE *node) | 194 | x509_policy_node_free(X509_POLICY_NODE *node) |
195 | { | 195 | { |
196 | if (node != NULL) { | 196 | if (node == NULL) |
197 | ASN1_OBJECT_free(node->policy); | 197 | return; |
198 | sk_ASN1_OBJECT_pop_free(node->parent_policies, | 198 | |
199 | ASN1_OBJECT_free); | 199 | ASN1_OBJECT_free(node->policy); |
200 | free(node); | 200 | sk_ASN1_OBJECT_pop_free(node->parent_policies, ASN1_OBJECT_free); |
201 | } | 201 | free(node); |
202 | } | 202 | } |
203 | 203 | ||
204 | static X509_POLICY_NODE * | 204 | static X509_POLICY_NODE * |
205 | x509_policy_node_new(const ASN1_OBJECT *policy) | 205 | x509_policy_node_new(const ASN1_OBJECT *policy) |
206 | { | 206 | { |
207 | assert(!is_any_policy(policy)); | 207 | assert(!is_any_policy(policy)); |
208 | X509_POLICY_NODE *node = malloc(sizeof(X509_POLICY_NODE)); | 208 | X509_POLICY_NODE *node; |
209 | if (node == NULL) { | 209 | |
210 | return NULL; | 210 | if ((node = calloc(1, sizeof(*node))) == NULL) |
211 | } | 211 | goto err; |
212 | memset(node, 0, sizeof(X509_POLICY_NODE)); | 212 | if ((node->policy = OBJ_dup(policy)) == NULL) |
213 | node->policy = OBJ_dup(policy); | 213 | goto err; |
214 | node->parent_policies = sk_ASN1_OBJECT_new_null(); | 214 | if ((node->parent_policies = sk_ASN1_OBJECT_new_null()) == NULL) |
215 | if (node->policy == NULL || node->parent_policies == NULL) { | 215 | goto err; |
216 | x509_policy_node_free(node); | 216 | |
217 | return NULL; | ||
218 | } | ||
219 | return node; | 217 | return node; |
218 | |||
219 | err: | ||
220 | x509_policy_node_free(node); | ||
221 | return NULL; | ||
220 | } | 222 | } |
221 | 223 | ||
222 | static int | 224 | static int |
@@ -229,27 +231,29 @@ x509_policy_node_cmp(const X509_POLICY_NODE *const *a, | |||
229 | static void | 231 | static void |
230 | x509_policy_level_free(X509_POLICY_LEVEL *level) | 232 | x509_policy_level_free(X509_POLICY_LEVEL *level) |
231 | { | 233 | { |
232 | if (level != NULL) { | 234 | if (level == NULL) |
233 | sk_X509_POLICY_NODE_pop_free(level->nodes, | 235 | return; |
234 | x509_policy_node_free); | 236 | |
235 | free(level); | 237 | sk_X509_POLICY_NODE_pop_free(level->nodes, x509_policy_node_free); |
236 | } | 238 | free(level); |
237 | } | 239 | } |
238 | 240 | ||
239 | static X509_POLICY_LEVEL * | 241 | static X509_POLICY_LEVEL * |
240 | x509_policy_level_new(void) | 242 | x509_policy_level_new(void) |
241 | { | 243 | { |
242 | X509_POLICY_LEVEL *level = malloc(sizeof(X509_POLICY_LEVEL)); | 244 | X509_POLICY_LEVEL *level; |
243 | if (level == NULL) { | 245 | |
244 | return NULL; | 246 | if ((level = calloc(1, sizeof(*level))) == NULL) |
245 | } | 247 | goto err; |
246 | memset(level, 0, sizeof(X509_POLICY_LEVEL)); | ||
247 | level->nodes = sk_X509_POLICY_NODE_new(x509_policy_node_cmp); | 248 | level->nodes = sk_X509_POLICY_NODE_new(x509_policy_node_cmp); |
248 | if (level->nodes == NULL) { | 249 | if (level->nodes== NULL) |
249 | x509_policy_level_free(level); | 250 | goto err; |
250 | return NULL; | 251 | |
251 | } | ||
252 | return level; | 252 | return level; |
253 | |||
254 | err: | ||
255 | x509_policy_level_free(level); | ||
256 | return NULL; | ||
253 | } | 257 | } |
254 | 258 | ||
255 | static int | 259 | static int |