Commit 3d8b2ec4 authored by Rich Salz's avatar Rich Salz
Browse files

Remove several unused undocumented functions.



Removed the following:
    DSO_bind_var, DSO_bind_var, DSO_get_default_method,
    DSO_get_loaded_filename, DSO_get_loaded_filename, DSO_get_method,
    DSO_new_method, DSO_pathbyaddr, DSO_set_default_method, DSO_set_method,
    DSO_set_name_converter, DSO_set_name_converter

Reviewed-by: default avatarRichard Levitte <levitte@openssl.org>
parent de705824
Loading
Loading
Loading
Loading
+0 −62
Original line number Diff line number Diff line
@@ -67,26 +67,22 @@

static int dl_load(DSO *dso);
static int dl_unload(DSO *dso);
static void *dl_bind_var(DSO *dso, const char *symname);
static DSO_FUNC_TYPE dl_bind_func(DSO *dso, const char *symname);
static char *dl_name_converter(DSO *dso, const char *filename);
static char *dl_merger(DSO *dso, const char *filespec1,
                       const char *filespec2);
static int dl_pathbyaddr(void *addr, char *path, int sz);
static void *dl_globallookup(const char *name);

static DSO_METHOD dso_meth_dl = {
    "OpenSSL 'dl' shared library method",
    dl_load,
    dl_unload,
    dl_bind_var,
    dl_bind_func,
    NULL,                       /* ctrl */
    dl_name_converter,
    dl_merger,
    NULL,                       /* init */
    NULL,                       /* finish */
    dl_pathbyaddr,
    dl_globallookup
};

@@ -164,32 +160,6 @@ static int dl_unload(DSO *dso)
    return (1);
}

static void *dl_bind_var(DSO *dso, const char *symname)
{
    shl_t ptr;
    void *sym;

    if ((dso == NULL) || (symname == NULL)) {
        DSOerr(DSO_F_DL_BIND_VAR, ERR_R_PASSED_NULL_PARAMETER);
        return (NULL);
    }
    if (sk_num(dso->meth_data) < 1) {
        DSOerr(DSO_F_DL_BIND_VAR, DSO_R_STACK_ERROR);
        return (NULL);
    }
    ptr = (shl_t) sk_value(dso->meth_data, sk_num(dso->meth_data) - 1);
    if (ptr == NULL) {
        DSOerr(DSO_F_DL_BIND_VAR, DSO_R_NULL_HANDLE);
        return (NULL);
    }
    if (shl_findsym(&ptr, symname, TYPE_UNDEFINED, &sym) < 0) {
        DSOerr(DSO_F_DL_BIND_VAR, DSO_R_SYM_FAILURE);
        ERR_add_error_data(4, "symname(", symname, "): ", strerror(errno));
        return (NULL);
    }
    return (sym);
}

static DSO_FUNC_TYPE dl_bind_func(DSO *dso, const char *symname)
{
    shl_t ptr;
@@ -310,38 +280,6 @@ static char *dl_name_converter(DSO *dso, const char *filename)
    return (translated);
}

static int dl_pathbyaddr(void *addr, char *path, int sz)
{
    struct shl_descriptor inf;
    int i, len;

    if (addr == NULL) {
        union {
            int (*f) (void *, char *, int);
            void *p;
        } t = {
            dl_pathbyaddr
        };
        addr = t.p;
    }

    for (i = -1; shl_get_r(i, &inf) == 0; i++) {
        if (((size_t)addr >= inf.tstart && (size_t)addr < inf.tend) ||
            ((size_t)addr >= inf.dstart && (size_t)addr < inf.dend)) {
            len = (int)strlen(inf.filename);
            if (sz <= 0)
                return len + 1;
            if (len >= sz)
                len = sz - 1;
            memcpy(path, inf.filename, len);
            path[len++] = 0;
            return len;
        }
    }

    return -1;
}

static void *dl_globallookup(const char *name)
{
    void *ret;
+0 −62
Original line number Diff line number Diff line
@@ -89,26 +89,22 @@

static int dlfcn_load(DSO *dso);
static int dlfcn_unload(DSO *dso);
static void *dlfcn_bind_var(DSO *dso, const char *symname);
static DSO_FUNC_TYPE dlfcn_bind_func(DSO *dso, const char *symname);
static char *dlfcn_name_converter(DSO *dso, const char *filename);
static char *dlfcn_merger(DSO *dso, const char *filespec1,
                          const char *filespec2);
static int dlfcn_pathbyaddr(void *addr, char *path, int sz);
static void *dlfcn_globallookup(const char *name);

static DSO_METHOD dso_meth_dlfcn = {
    "OpenSSL 'dlfcn' shared library method",
    dlfcn_load,
    dlfcn_unload,
    dlfcn_bind_var,
    dlfcn_bind_func,
    NULL,                       /* ctrl */
    dlfcn_name_converter,
    dlfcn_merger,
    NULL,                       /* init */
    NULL,                       /* finish */
    dlfcn_pathbyaddr,
    dlfcn_globallookup
};

@@ -203,32 +199,6 @@ static int dlfcn_unload(DSO *dso)
    return (1);
}

static void *dlfcn_bind_var(DSO *dso, const char *symname)
{
    void *ptr, *sym;

    if ((dso == NULL) || (symname == NULL)) {
        DSOerr(DSO_F_DLFCN_BIND_VAR, ERR_R_PASSED_NULL_PARAMETER);
        return (NULL);
    }
    if (sk_void_num(dso->meth_data) < 1) {
        DSOerr(DSO_F_DLFCN_BIND_VAR, DSO_R_STACK_ERROR);
        return (NULL);
    }
    ptr = sk_void_value(dso->meth_data, sk_void_num(dso->meth_data) - 1);
    if (ptr == NULL) {
        DSOerr(DSO_F_DLFCN_BIND_VAR, DSO_R_NULL_HANDLE);
        return (NULL);
    }
    sym = dlsym(ptr, symname);
    if (sym == NULL) {
        DSOerr(DSO_F_DLFCN_BIND_VAR, DSO_R_SYM_FAILURE);
        ERR_add_error_data(4, "symname(", symname, "): ", dlerror());
        return (NULL);
    }
    return (sym);
}

static DSO_FUNC_TYPE dlfcn_bind_func(DSO *dso, const char *symname)
{
    void *ptr;
@@ -385,38 +355,6 @@ static int dladdr(void *address, Dl_info *dl)
}
# endif                         /* __sgi */

static int dlfcn_pathbyaddr(void *addr, char *path, int sz)
{
# ifdef HAVE_DLINFO
    Dl_info dli;
    int len;

    if (addr == NULL) {
        union {
            int (*f) (void *, char *, int);
            void *p;
        } t = {
            dlfcn_pathbyaddr
        };
        addr = t.p;
    }

    if (dladdr(addr, &dli)) {
        len = (int)strlen(dli.dli_fname);
        if (sz <= 0)
            return len + 1;
        if (len >= sz)
            len = sz - 1;
        memcpy(path, dli.dli_fname, len);
        path[len++] = 0;
        return len;
    }

    ERR_add_error_data(2, "dlfcn_pathbyaddr(): ", dlerror());
# endif
    return -1;
}

static void *dlfcn_globallookup(const char *name)
{
    void *ret = NULL, *handle = dlopen(NULL, RTLD_LAZY);
+0 −15
Original line number Diff line number Diff line
@@ -67,53 +67,38 @@
# define ERR_REASON(reason) ERR_PACK(ERR_LIB_DSO,0,reason)

static ERR_STRING_DATA DSO_str_functs[] = {
    {ERR_FUNC(DSO_F_BEOS_BIND_FUNC), "BEOS_BIND_FUNC"},
    {ERR_FUNC(DSO_F_BEOS_BIND_VAR), "BEOS_BIND_VAR"},
    {ERR_FUNC(DSO_F_BEOS_LOAD), "BEOS_LOAD"},
    {ERR_FUNC(DSO_F_BEOS_NAME_CONVERTER), "BEOS_NAME_CONVERTER"},
    {ERR_FUNC(DSO_F_BEOS_UNLOAD), "BEOS_UNLOAD"},
    {ERR_FUNC(DSO_F_DLFCN_BIND_FUNC), "dlfcn_bind_func"},
    {ERR_FUNC(DSO_F_DLFCN_BIND_VAR), "dlfcn_bind_var"},
    {ERR_FUNC(DSO_F_DLFCN_LOAD), "dlfcn_load"},
    {ERR_FUNC(DSO_F_DLFCN_MERGER), "dlfcn_merger"},
    {ERR_FUNC(DSO_F_DLFCN_NAME_CONVERTER), "dlfcn_name_converter"},
    {ERR_FUNC(DSO_F_DLFCN_UNLOAD), "dlfcn_unload"},
    {ERR_FUNC(DSO_F_DL_BIND_FUNC), "dl_bind_func"},
    {ERR_FUNC(DSO_F_DL_BIND_VAR), "dl_bind_var"},
    {ERR_FUNC(DSO_F_DL_LOAD), "dl_load"},
    {ERR_FUNC(DSO_F_DL_MERGER), "dl_merger"},
    {ERR_FUNC(DSO_F_DL_NAME_CONVERTER), "dl_name_converter"},
    {ERR_FUNC(DSO_F_DL_UNLOAD), "dl_unload"},
    {ERR_FUNC(DSO_F_DSO_BIND_FUNC), "DSO_bind_func"},
    {ERR_FUNC(DSO_F_DSO_BIND_VAR), "DSO_bind_var"},
    {ERR_FUNC(DSO_F_DSO_CONVERT_FILENAME), "DSO_convert_filename"},
    {ERR_FUNC(DSO_F_DSO_CTRL), "DSO_ctrl"},
    {ERR_FUNC(DSO_F_DSO_FREE), "DSO_free"},
    {ERR_FUNC(DSO_F_DSO_GET_FILENAME), "DSO_get_filename"},
    {ERR_FUNC(DSO_F_DSO_GET_LOADED_FILENAME), "DSO_get_loaded_filename"},
    {ERR_FUNC(DSO_F_DSO_GLOBAL_LOOKUP), "DSO_global_lookup"},
    {ERR_FUNC(DSO_F_DSO_LOAD), "DSO_load"},
    {ERR_FUNC(DSO_F_DSO_MERGE), "DSO_merge"},
    {ERR_FUNC(DSO_F_DSO_NEW_METHOD), "DSO_new_method"},
    {ERR_FUNC(DSO_F_DSO_PATHBYADDR), "DSO_pathbyaddr"},
    {ERR_FUNC(DSO_F_DSO_SET_FILENAME), "DSO_set_filename"},
    {ERR_FUNC(DSO_F_DSO_SET_NAME_CONVERTER), "DSO_set_name_converter"},
    {ERR_FUNC(DSO_F_DSO_UP_REF), "DSO_up_ref"},
    {ERR_FUNC(DSO_F_GLOBAL_LOOKUP_FUNC), "GLOBAL_LOOKUP_FUNC"},
    {ERR_FUNC(DSO_F_PATHBYADDR), "PATHBYADDR"},
    {ERR_FUNC(DSO_F_VMS_BIND_SYM), "vms_bind_sym"},
    {ERR_FUNC(DSO_F_VMS_LOAD), "vms_load"},
    {ERR_FUNC(DSO_F_VMS_MERGER), "vms_merger"},
    {ERR_FUNC(DSO_F_VMS_UNLOAD), "vms_unload"},
    {ERR_FUNC(DSO_F_WIN32_BIND_FUNC), "win32_bind_func"},
    {ERR_FUNC(DSO_F_WIN32_BIND_VAR), "win32_bind_var"},
    {ERR_FUNC(DSO_F_WIN32_GLOBALLOOKUP), "win32_globallookup"},
    {ERR_FUNC(DSO_F_WIN32_GLOBALLOOKUP_FUNC), "WIN32_GLOBALLOOKUP_FUNC"},
    {ERR_FUNC(DSO_F_WIN32_JOINER), "win32_joiner"},
    {ERR_FUNC(DSO_F_WIN32_LOAD), "win32_load"},
    {ERR_FUNC(DSO_F_WIN32_MERGER), "win32_merger"},
    {ERR_FUNC(DSO_F_WIN32_NAME_CONVERTER), "win32_name_converter"},
    {ERR_FUNC(DSO_F_WIN32_PATHBYADDR), "win32_pathbyaddr"},
    {ERR_FUNC(DSO_F_WIN32_SPLITTER), "win32_splitter"},
    {ERR_FUNC(DSO_F_WIN32_UNLOAD), "win32_unload"},
    {0, NULL}
+7 −88
Original line number Diff line number Diff line
@@ -60,35 +60,7 @@

static DSO_METHOD *default_DSO_meth = NULL;

DSO *DSO_new(void)
{
    return (DSO_new_method(NULL));
}

void DSO_set_default_method(DSO_METHOD *meth)
{
    default_DSO_meth = meth;
}

DSO_METHOD *DSO_get_default_method(void)
{
    return (default_DSO_meth);
}

DSO_METHOD *DSO_get_method(DSO *dso)
{
    return (dso->meth);
}

DSO_METHOD *DSO_set_method(DSO *dso, DSO_METHOD *meth)
{
    DSO_METHOD *mtmp;
    mtmp = dso->meth;
    dso->meth = meth;
    return (mtmp);
}

DSO *DSO_new_method(DSO_METHOD *meth)
static DSO *DSO_new_method(DSO_METHOD *meth)
{
    DSO *ret;

@@ -112,12 +84,8 @@ DSO *DSO_new_method(DSO_METHOD *meth)
        OPENSSL_free(ret);
        return (NULL);
    }
    if (meth == NULL)
    ret->meth = default_DSO_meth;
    else
        ret->meth = meth;
    ret->references = 1;

    ret->lock = CRYPTO_THREAD_lock_new();
    if (ret->lock == NULL) {
        sk_void_free(ret->meth_data);
@@ -133,6 +101,11 @@ DSO *DSO_new_method(DSO_METHOD *meth)
    return ret;
}

DSO *DSO_new(void)
{
    return DSO_new_method(NULL);
}

int DSO_free(DSO *dso)
{
    int i;
@@ -242,26 +215,6 @@ DSO *DSO_load(DSO *dso, const char *filename, DSO_METHOD *meth, int flags)
    return (NULL);
}

void *DSO_bind_var(DSO *dso, const char *symname)
{
    void *ret = NULL;

    if ((dso == NULL) || (symname == NULL)) {
        DSOerr(DSO_F_DSO_BIND_VAR, ERR_R_PASSED_NULL_PARAMETER);
        return (NULL);
    }
    if (dso->meth->dso_bind_var == NULL) {
        DSOerr(DSO_F_DSO_BIND_VAR, DSO_R_UNSUPPORTED);
        return (NULL);
    }
    if ((ret = dso->meth->dso_bind_var(dso, symname)) == NULL) {
        DSOerr(DSO_F_DSO_BIND_VAR, DSO_R_SYM_FAILURE);
        return (NULL);
    }
    /* Success */
    return (ret);
}

DSO_FUNC_TYPE DSO_bind_func(DSO *dso, const char *symname)
{
    DSO_FUNC_TYPE ret = NULL;
@@ -320,19 +273,6 @@ long DSO_ctrl(DSO *dso, int cmd, long larg, void *parg)
    return (dso->meth->dso_ctrl(dso, cmd, larg, parg));
}

int DSO_set_name_converter(DSO *dso, DSO_NAME_CONVERTER_FUNC cb,
                           DSO_NAME_CONVERTER_FUNC *oldcb)
{
    if (dso == NULL) {
        DSOerr(DSO_F_DSO_SET_NAME_CONVERTER, ERR_R_PASSED_NULL_PARAMETER);
        return (0);
    }
    if (oldcb)
        *oldcb = dso->name_converter;
    dso->name_converter = cb;
    return (1);
}

const char *DSO_get_filename(DSO *dso)
{
    if (dso == NULL) {
@@ -412,27 +352,6 @@ char *DSO_convert_filename(DSO *dso, const char *filename)
    return (result);
}

const char *DSO_get_loaded_filename(DSO *dso)
{
    if (dso == NULL) {
        DSOerr(DSO_F_DSO_GET_LOADED_FILENAME, ERR_R_PASSED_NULL_PARAMETER);
        return (NULL);
    }
    return (dso->loaded_filename);
}

int DSO_pathbyaddr(void *addr, char *path, int sz)
{
    DSO_METHOD *meth = default_DSO_meth;
    if (meth == NULL)
        meth = DSO_METHOD_openssl();
    if (meth->pathbyaddr == NULL) {
        DSOerr(DSO_F_DSO_PATHBYADDR, DSO_R_UNSUPPORTED);
        return -1;
    }
    return (*meth->pathbyaddr) (addr, path, sz);
}

void *DSO_global_lookup(const char *name)
{
    DSO_METHOD *meth = default_DSO_meth;
+0 −4
Original line number Diff line number Diff line
@@ -72,8 +72,6 @@ struct dso_meth_st {
    int (*dso_load) (DSO *dso);
    /* Unloads a shared library */
    int (*dso_unload) (DSO *dso);
    /* Binds a variable */
    void *(*dso_bind_var) (DSO *dso, const char *symname);
    /*
     * Binds a function - assumes a return type of DSO_FUNC_TYPE. This should
     * be cast to the real function prototype by the caller. Platforms that
@@ -100,8 +98,6 @@ struct dso_meth_st {
    /* [De]Initialisation handlers. */
    int (*init) (DSO *dso);
    int (*finish) (DSO *dso);
    /* Return pathname of the module containing location */
    int (*pathbyaddr) (void *addr, char *path, int sz);
    /* Perform global symbol lookup, i.e. among *all* modules */
    void *(*globallookup) (const char *symname);
};
Loading