OpenSSL 1.1.1-pre2
This commit is contained in:
+32
-39
@@ -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)
|
||||
|
||||
Reference in New Issue
Block a user