diff options
Diffstat (limited to 'Cryptlib/OpenSSL/crypto/dso/dso_vms.c')
-rw-r--r-- | Cryptlib/OpenSSL/crypto/dso/dso_vms.c | 127 |
1 files changed, 24 insertions, 103 deletions
diff --git a/Cryptlib/OpenSSL/crypto/dso/dso_vms.c b/Cryptlib/OpenSSL/crypto/dso/dso_vms.c index 1efd84b9..b9a98ddd 100644 --- a/Cryptlib/OpenSSL/crypto/dso/dso_vms.c +++ b/Cryptlib/OpenSSL/crypto/dso/dso_vms.c @@ -1,82 +1,25 @@ -/* dso_vms.c */ /* - * Written by Richard Levitte (richard@levitte.org) for the OpenSSL project - * 2000. - */ -/* ==================================================================== - * Copyright (c) 2000 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 2000-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 <stdio.h> -#include <string.h> -#include <errno.h> -#include "cryptlib.h" -#include <openssl/dso.h> +#include "dso_locl.h" -#ifndef OPENSSL_SYS_VMS -DSO_METHOD *DSO_METHOD_vms(void) -{ - return NULL; -} -#else +#ifdef OPENSSL_SYS_VMS # pragma message disable DOLLARID +# include <errno.h> # include <rms.h> # include <lib$routines.h> +# include <libfisdef.h> # include <stsdef.h> # include <descrip.h> # include <starlet.h> -# include "vms_rms.h" +# include "../vms_rms.h" /* Some compiler options may mask the declaration of "_malloc32". */ # if __INITIAL_POINTER_SIZE && defined _ANSI_C_SOURCE @@ -93,15 +36,7 @@ void *_malloc32(__size_t); static int vms_load(DSO *dso); static int vms_unload(DSO *dso); -static void *vms_bind_var(DSO *dso, const char *symname); static DSO_FUNC_TYPE vms_bind_func(DSO *dso, const char *symname); -# if 0 -static int vms_unbind_var(DSO *dso, char *symname, void *symptr); -static int vms_unbind_func(DSO *dso, char *symname, DSO_FUNC_TYPE symptr); -static int vms_init(DSO *dso); -static int vms_finish(DSO *dso); -static long vms_ctrl(DSO *dso, int cmd, long larg, void *parg); -# endif static char *vms_name_converter(DSO *dso, const char *filename); static char *vms_merger(DSO *dso, const char *filespec1, const char *filespec2); @@ -110,18 +45,14 @@ static DSO_METHOD dso_meth_vms = { "OpenSSL 'VMS' shared library method", vms_load, NULL, /* unload */ - vms_bind_var, vms_bind_func, -/* For now, "unbind" doesn't exist */ -# if 0 - NULL, /* unbind_var */ - NULL, /* unbind_func */ -# endif NULL, /* ctrl */ vms_name_converter, vms_merger, NULL, /* init */ - NULL /* finish */ + NULL, /* finish */ + NULL, /* pathbyaddr */ + NULL /* globallookup */ }; /* @@ -145,9 +76,9 @@ typedef struct dso_internal_st { char imagename[NAMX_MAXRSS + 1]; } DSO_VMS_INTERNAL; -DSO_METHOD *DSO_METHOD_vms(void) +DSO_METHOD *DSO_METHOD_openssl(void) { - return (&dso_meth_vms); + return &dso_meth_vms; } static int vms_load(DSO *dso) @@ -172,7 +103,7 @@ static int vms_load(DSO *dso) # endif /* __INITIAL_POINTER_SIZE == 64 */ const char *sp1, *sp2; /* Search result */ - const char *ext = NULL; /* possible extension to add */ + const char *ext = NULL; /* possible extension to add */ if (filename == NULL) { DSOerr(DSO_F_VMS_LOAD, DSO_R_NO_FILENAME); @@ -242,7 +173,7 @@ static int vms_load(DSO *dso) goto err; } - p = DSO_MALLOC(sizeof(DSO_VMS_INTERNAL)); + p = DSO_MALLOC(sizeof(*p)); if (p == NULL) { DSOerr(DSO_F_VMS_LOAD, ERR_R_MALLOC_FAILURE); goto err; @@ -279,10 +210,8 @@ static int vms_load(DSO *dso) return (1); err: /* Cleanup! */ - if (p != NULL) - OPENSSL_free(p); - if (filename != NULL) - OPENSSL_free(filename); + OPENSSL_free(p); + OPENSSL_free(filename); return (0); } @@ -338,11 +267,10 @@ void vms_bind_sym(DSO *dso, const char *symname, void **sym) { DSO_VMS_INTERNAL *ptr; int status; -# if 0 - int flags = (1 << 4); /* LIB$M_FIS_MIXEDCASE, but this symbol isn't - * defined in VMS older than 7.0 or so */ +# ifdef LIB$M_FIS_MIXEDCASE + int flags = LIB$M_FIS_MIXEDCASE; # else - int flags = 0; + int flags = (1 << 4); # endif struct dsc$descriptor_s symname_dsc; @@ -427,13 +355,6 @@ void vms_bind_sym(DSO *dso, const char *symname, void **sym) return; } -static void *vms_bind_var(DSO *dso, const char *symname) -{ - void *sym = 0; - vms_bind_sym(dso, symname, &sym); - return sym; -} - static DSO_FUNC_TYPE vms_bind_func(DSO *dso, const char *symname) { DSO_FUNC_TYPE sym = 0; @@ -526,7 +447,7 @@ static char *vms_merger(DSO *dso, const char *filespec1, } merged = OPENSSL_malloc(nam.NAMX_ESL + 1); - if (!merged) + if (merged == NULL) goto malloc_err; strncpy(merged, nam.NAMX_ESA, nam.NAMX_ESL); merged[nam.NAMX_ESL] = '\0'; @@ -539,7 +460,7 @@ static char *vms_name_converter(DSO *dso, const char *filename) { int len = strlen(filename); char *not_translated = OPENSSL_malloc(len + 1); - if (not_translated) + if (not_translated != NULL) strcpy(not_translated, filename); return (not_translated); } |