summaryrefslogtreecommitdiff
path: root/deps/openssl/openssl/crypto/dso/dso_win32.c
diff options
context:
space:
mode:
Diffstat (limited to 'deps/openssl/openssl/crypto/dso/dso_win32.c')
-rw-r--r--deps/openssl/openssl/crypto/dso/dso_win32.c71
1 files changed, 32 insertions, 39 deletions
diff --git a/deps/openssl/openssl/crypto/dso/dso_win32.c b/deps/openssl/openssl/crypto/dso/dso_win32.c
index 4a4c34abb6..0bbf5b5189 100644
--- a/deps/openssl/openssl/crypto/dso/dso_win32.c
+++ b/deps/openssl/openssl/crypto/dso/dso_win32.c
@@ -1,5 +1,5 @@
/*
- * Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
+ * Copyright 2000-2017 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
@@ -7,6 +7,7 @@
* https://www.openssl.org/source/license.html
*/
+#include "e_os.h"
#include "dso_locl.h"
#if defined(DSO_WIN32)
@@ -119,14 +120,14 @@ static int win32_load(DSO *dso)
}
/* Success */
dso->loaded_filename = filename;
- return (1);
+ return 1;
err:
/* Cleanup ! */
OPENSSL_free(filename);
OPENSSL_free(p);
if (h != NULL)
FreeLibrary(h);
- return (0);
+ return 0;
}
static int win32_unload(DSO *dso)
@@ -134,14 +135,14 @@ static int win32_unload(DSO *dso)
HINSTANCE *p;
if (dso == NULL) {
DSOerr(DSO_F_WIN32_UNLOAD, ERR_R_PASSED_NULL_PARAMETER);
- return (0);
+ return 0;
}
if (sk_void_num(dso->meth_data) < 1)
- return (1);
+ return 1;
p = sk_void_pop(dso->meth_data);
if (p == NULL) {
DSOerr(DSO_F_WIN32_UNLOAD, DSO_R_NULL_HANDLE);
- return (0);
+ return 0;
}
if (!FreeLibrary(*p)) {
DSOerr(DSO_F_WIN32_UNLOAD, DSO_R_UNLOAD_FAILED);
@@ -149,11 +150,11 @@ static int win32_unload(DSO *dso)
* We should push the value back onto the stack in case of a retry.
*/
sk_void_push(dso->meth_data, p);
- return (0);
+ return 0;
}
/* Cleanup */
OPENSSL_free(p);
- return (1);
+ return 1;
}
static DSO_FUNC_TYPE win32_bind_func(DSO *dso, const char *symname)
@@ -166,24 +167,24 @@ static DSO_FUNC_TYPE win32_bind_func(DSO *dso, const char *symname)
if ((dso == NULL) || (symname == NULL)) {
DSOerr(DSO_F_WIN32_BIND_FUNC, ERR_R_PASSED_NULL_PARAMETER);
- return (NULL);
+ return NULL;
}
if (sk_void_num(dso->meth_data) < 1) {
DSOerr(DSO_F_WIN32_BIND_FUNC, DSO_R_STACK_ERROR);
- return (NULL);
+ return NULL;
}
ptr = sk_void_value(dso->meth_data, sk_void_num(dso->meth_data) - 1);
if (ptr == NULL) {
DSOerr(DSO_F_WIN32_BIND_FUNC, DSO_R_NULL_HANDLE);
- return (NULL);
+ return NULL;
}
sym.f = GetProcAddress(*ptr, symname);
if (sym.p == NULL) {
DSOerr(DSO_F_WIN32_BIND_FUNC, DSO_R_SYM_FAILURE);
ERR_add_error_data(3, "symname(", symname, ")");
- return (NULL);
+ return NULL;
}
- return ((DSO_FUNC_TYPE)sym.f);
+ return (DSO_FUNC_TYPE)sym.f;
}
struct file_st {
@@ -209,16 +210,13 @@ static struct file_st *win32_splitter(DSO *dso, const char *filename,
if (!filename) {
DSOerr(DSO_F_WIN32_SPLITTER, DSO_R_NO_FILENAME);
- /*
- * goto err;
- */
- return (NULL);
+ return NULL;
}
result = OPENSSL_zalloc(sizeof(*result));
if (result == NULL) {
DSOerr(DSO_F_WIN32_SPLITTER, ERR_R_MALLOC_FAILURE);
- return (NULL);
+ return NULL;
}
position = IN_DEVICE;
@@ -237,11 +235,8 @@ static struct file_st *win32_splitter(DSO *dso, const char *filename,
case ':':
if (position != IN_DEVICE) {
DSOerr(DSO_F_WIN32_SPLITTER, DSO_R_INCORRECT_FILE_SYNTAX);
- /*
- * goto err;
- */
OPENSSL_free(result);
- return (NULL);
+ return NULL;
}
result->device = start;
result->devicelen = (int)(filename - start);
@@ -302,7 +297,7 @@ static struct file_st *win32_splitter(DSO *dso, const char *filename,
if (!result->filelen)
result->file = NULL;
- return (result);
+ return result;
}
static char *win32_joiner(DSO *dso, const struct file_st *file_split)
@@ -313,7 +308,7 @@ static char *win32_joiner(DSO *dso, const struct file_st *file_split)
if (!file_split) {
DSOerr(DSO_F_WIN32_JOINER, ERR_R_PASSED_NULL_PARAMETER);
- return (NULL);
+ return NULL;
}
if (file_split->node) {
len += 2 + file_split->nodelen; /* 2 for starting \\ */
@@ -334,13 +329,13 @@ static char *win32_joiner(DSO *dso, const struct file_st *file_split)
if (!len) {
DSOerr(DSO_F_WIN32_JOINER, DSO_R_EMPTY_FILE_STRUCTURE);
- return (NULL);
+ return NULL;
}
result = OPENSSL_malloc(len + 1);
if (result == NULL) {
DSOerr(DSO_F_WIN32_JOINER, ERR_R_MALLOC_FAILURE);
- return (NULL);
+ return NULL;
}
if (file_split->node) {
@@ -388,7 +383,7 @@ static char *win32_joiner(DSO *dso, const struct file_st *file_split)
strncpy(&result[offset], file_split->file, file_split->filelen);
offset += file_split->filelen;
result[offset] = '\0';
- return (result);
+ return result;
}
static char *win32_merger(DSO *dso, const char *filespec1,
@@ -400,33 +395,31 @@ static char *win32_merger(DSO *dso, const char *filespec1,
if (!filespec1 && !filespec2) {
DSOerr(DSO_F_WIN32_MERGER, ERR_R_PASSED_NULL_PARAMETER);
- return (NULL);
+ return NULL;
}
if (!filespec2) {
- merged = OPENSSL_malloc(strlen(filespec1) + 1);
+ merged = OPENSSL_strdup(filespec1);
if (merged == NULL) {
DSOerr(DSO_F_WIN32_MERGER, ERR_R_MALLOC_FAILURE);
- return (NULL);
+ return NULL;
}
- strcpy(merged, filespec1);
} else if (!filespec1) {
- merged = OPENSSL_malloc(strlen(filespec2) + 1);
+ merged = OPENSSL_strdup(filespec2);
if (merged == NULL) {
DSOerr(DSO_F_WIN32_MERGER, ERR_R_MALLOC_FAILURE);
- return (NULL);
+ return NULL;
}
- strcpy(merged, filespec2);
} else {
filespec1_split = win32_splitter(dso, filespec1, 0);
if (!filespec1_split) {
DSOerr(DSO_F_WIN32_MERGER, ERR_R_MALLOC_FAILURE);
- return (NULL);
+ return NULL;
}
filespec2_split = win32_splitter(dso, filespec2, 1);
if (!filespec2_split) {
DSOerr(DSO_F_WIN32_MERGER, ERR_R_MALLOC_FAILURE);
OPENSSL_free(filespec1_split);
- return (NULL);
+ return NULL;
}
/* Fill in into filespec1_split */
@@ -453,7 +446,7 @@ static char *win32_merger(DSO *dso, const char *filespec1,
}
OPENSSL_free(filespec1_split);
OPENSSL_free(filespec2_split);
- return (merged);
+ return merged;
}
static char *win32_name_converter(DSO *dso, const char *filename)
@@ -473,13 +466,13 @@ static char *win32_name_converter(DSO *dso, const char *filename)
translated = OPENSSL_malloc(len + 1);
if (translated == NULL) {
DSOerr(DSO_F_WIN32_NAME_CONVERTER, DSO_R_NAME_TRANSLATION_FAILED);
- return (NULL);
+ return NULL;
}
if (transform)
sprintf(translated, "%s.dll", filename);
else
sprintf(translated, "%s", filename);
- return (translated);
+ return translated;
}
static const char *openssl_strnchr(const char *string, int c, size_t len)