make depend
[openssl.git] / crypto / engine / eng_list.c
index bd511944bafdabbfabf34b0e96adced573cf9d97..95c858960b811b5cb910dcffbc17a3cfdda2a43f 100644 (file)
@@ -336,6 +336,7 @@ static void engine_cpy(ENGINE *dest, const ENGINE *src)
        dest->store_meth = src->store_meth;
        dest->ciphers = src->ciphers;
        dest->digests = src->digests;
+       dest->pkey_meths = src->pkey_meths;
        dest->destroy = src->destroy;
        dest->init = src->init;
        dest->finish = src->finish;
@@ -407,11 +408,13 @@ ENGINE *ENGINE_by_id(const char *id)
                                !ENGINE_ctrl_cmd_string(iterator, "DIR_LOAD", "2", 0) ||
                                !ENGINE_ctrl_cmd_string(iterator, "DIR_ADD",
                                        load_dir, 0) ||
+                               !ENGINE_ctrl_cmd_string(iterator, "LIST_ADD", "1", 0) ||
                                !ENGINE_ctrl_cmd_string(iterator, "LOAD", NULL, 0))
                                goto notfound;
                return iterator;
                }
 notfound:
+       ENGINE_free(iterator);
        ENGINEerr(ENGINE_F_ENGINE_BY_ID,ENGINE_R_NO_SUCH_ENGINE);
        ERR_add_error_data(2, "id=", id);
        return NULL;