X-Git-Url: https://git.openssl.org/gitweb/?p=openssl.git;a=blobdiff_plain;f=ssl%2Fssl_mcnf.c;h=59674f3d39c9dd6bd78d87d0e06eb4483c783cc1;hp=a223c73ea75d2da2188b93b12bbd8653e22452cd;hb=b2021556e4b838f451459deab2b2eee9b40c9169;hpb=59b1696c0c752aeba67f40c91d6769afbc40469b diff --git a/ssl/ssl_mcnf.c b/ssl/ssl_mcnf.c index a223c73ea7..59674f3d39 100644 --- a/ssl/ssl_mcnf.c +++ b/ssl/ssl_mcnf.c @@ -1,60 +1,10 @@ -/* ssl_mcnf.c */ /* - * Written by Stephen Henson (steve@openssl.org) for the OpenSSL project - * 2015. - */ -/* ==================================================================== - * Copyright (c) 2015 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 - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * - * 2. Redistributions in binary form must reproduce the above copyright - * notice, this list of conditions and the following disclaimer in - * the documentation and/or other materials provided with the - * distribution. - * - * 3. All advertising materials mentioning features or use of this - * software must display the following acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)" - * - * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to - * endorse or promote products derived from this software without - * prior written permission. For written permission, please contact - * licensing@OpenSSL.org. - * - * 5. Products derived from this software may not be called "OpenSSL" - * nor may "OpenSSL" appear in their names without prior written - * permission of the OpenSSL Project. - * - * 6. Redistributions of any form whatsoever must retain the following - * acknowledgment: - * "This product includes software developed by the OpenSSL Project - * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" - * - * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY - * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR - * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR - * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT - * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - * OF THE POSSIBILITY OF SUCH DAMAGE. - * ==================================================================== - * - * This product includes cryptographic software written by Eric Young - * (eay@cryptsoft.com). This product includes software written by Tim - * Hudson (tjh@cryptsoft.com). + * Copyright 2015-2016 The OpenSSL Project Authors. All Rights Reserved. * + * Licensed under the OpenSSL license (the "License"). You may not use + * this file except in compliance with the License. You can obtain a copy + * in the file LICENSE in the source distribution or at + * https://www.openssl.org/source/license.html */ #include @@ -83,7 +33,7 @@ struct ssl_conf_cmd { static struct ssl_conf_name *ssl_names; static size_t ssl_names_count; -static void ssl_module_free() +static void ssl_module_free(CONF_IMODULE *md) { size_t i, j; if (ssl_names == NULL) @@ -110,7 +60,7 @@ static int ssl_module_init(CONF_IMODULE *md, const CONF *cnf) STACK_OF(CONF_VALUE) *cmd_lists; ssl_conf_section = CONF_imodule_get_value(md); cmd_lists = NCONF_get_section(cnf, ssl_conf_section); - if (sk_CONF_VALUE_num(cmd_lists) <= 0){ + if (sk_CONF_VALUE_num(cmd_lists) <= 0) { if (cmd_lists == NULL) SSLerr(SSL_F_SSL_MODULE_INIT, SSL_R_SSL_SECTION_NOT_FOUND); else @@ -123,11 +73,12 @@ static int ssl_module_init(CONF_IMODULE *md, const CONF *cnf) ssl_names_count = cnt; for (i = 0; i < ssl_names_count; i++) { struct ssl_conf_name *ssl_name = ssl_names + i; - CONF_VALUE *sect = sk_CONF_VALUE_value(cmd_lists, i); + CONF_VALUE *sect = sk_CONF_VALUE_value(cmd_lists, (int)i); STACK_OF(CONF_VALUE) *cmds = NCONF_get_section(cnf, sect->value); if (sk_CONF_VALUE_num(cmds) <= 0) { if (cmds == NULL) - SSLerr(SSL_F_SSL_MODULE_INIT, SSL_R_SSL_COMMAND_SECTION_NOT_FOUND); + SSLerr(SSL_F_SSL_MODULE_INIT, + SSL_R_SSL_COMMAND_SECTION_NOT_FOUND); else SSLerr(SSL_F_SSL_MODULE_INIT, SSL_R_SSL_COMMAND_SECTION_EMPTY); ERR_add_error_data(4, "name=", sect->name, ", value=", sect->value); @@ -143,7 +94,7 @@ static int ssl_module_init(CONF_IMODULE *md, const CONF *cnf) ssl_name->cmd_count = cnt; for (j = 0; j < cnt; j++) { const char *name; - CONF_VALUE *cmd_conf = sk_CONF_VALUE_value(cmds, j); + CONF_VALUE *cmd_conf = sk_CONF_VALUE_value(cmds, (int)j); struct ssl_conf_cmd *cmd = ssl_name->cmds + j; /* Skip any initial dot in name */ name = strchr(cmd_conf->name, '.'); @@ -159,9 +110,9 @@ static int ssl_module_init(CONF_IMODULE *md, const CONF *cnf) } rv = 1; - err: + err: if (rv == 0) - ssl_module_free(); + ssl_module_free(md); return rv; } @@ -215,24 +166,24 @@ static int ssl_do_config(SSL *s, SSL_CTX *ctx, const char *name) SSL_CONF_CTX_set_ssl_ctx(cctx, ctx); } if (meth->ssl_accept != ssl_undefined_function) - flags |= SSL_CONF_FLAG_SERVER; + flags |= SSL_CONF_FLAG_SERVER; if (meth->ssl_connect != ssl_undefined_function) - flags |= SSL_CONF_FLAG_CLIENT; + flags |= SSL_CONF_FLAG_CLIENT; SSL_CONF_CTX_set_flags(cctx, flags); for (i = 0, cmd = nm->cmds; i < nm->cmd_count; i++, cmd++) { rv = SSL_CONF_cmd(cctx, cmd->cmd, cmd->arg); if (rv <= 0) { if (rv == -2) SSLerr(SSL_F_SSL_DO_CONFIG, SSL_R_UNKNOWN_COMMAND); - else + else SSLerr(SSL_F_SSL_DO_CONFIG, SSL_R_BAD_VALUE); ERR_add_error_data(6, "section=", name, ", cmd=", cmd->cmd, - ", arg=", cmd->arg); + ", arg=", cmd->arg); goto err; } } rv = SSL_CONF_CTX_finish(cctx); - err: + err: SSL_CONF_CTX_free(cctx); return rv <= 0 ? 0 : 1; }