aboutsummaryrefslogtreecommitdiffstats
path: root/crypto/engine/eng_table.c
diff options
context:
space:
mode:
authorJung-uk Kim <jkim@FreeBSD.org>2018-03-27 17:03:01 +0000
committerJung-uk Kim <jkim@FreeBSD.org>2018-03-27 17:03:01 +0000
commit02be298e504b8554caca6dc85af450e1ea44d19d (patch)
treeb4870fcd2c2663fedd44997d4bb5ad13dcd50293 /crypto/engine/eng_table.c
parent4f94f84d8491a2455678402b5c7c92e692a272bc (diff)
downloadsrc-02be298e504b8554caca6dc85af450e1ea44d19d.tar.gz
src-02be298e504b8554caca6dc85af450e1ea44d19d.zip
Import OpenSSL 1.0.2o.vendor/openssl/1.0.2o
Notes
Notes: svn path=/vendor-crypto/openssl/dist/; revision=331625 svn path=/vendor-crypto/openssl/1.0.2o/; revision=331626; tag=vendor/openssl/1.0.2o
Diffstat (limited to 'crypto/engine/eng_table.c')
-rw-r--r--crypto/engine/eng_table.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/crypto/engine/eng_table.c b/crypto/engine/eng_table.c
index 27d31f70c855..709393fae57d 100644
--- a/crypto/engine/eng_table.c
+++ b/crypto/engine/eng_table.c
@@ -1,5 +1,5 @@
/* ====================================================================
- * Copyright (c) 2001 The OpenSSL Project. All rights reserved.
+ * Copyright (c) 2001-2018 The OpenSSL Project. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -159,6 +159,11 @@ int engine_table_register(ENGINE_TABLE **table, ENGINE_CLEANUP_CB *cleanup,
}
fnd->funct = NULL;
(void)lh_ENGINE_PILE_insert(&(*table)->piles, fnd);
+ if (lh_ENGINE_PILE_retrieve(&(*table)->piles, &tmplate) != fnd) {
+ sk_ENGINE_free(fnd->sk);
+ OPENSSL_free(fnd);
+ goto end;
+ }
}
/* A registration shouldn't add duplciate entries */
(void)sk_ENGINE_delete_ptr(fnd->sk, e);