1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-04-30 15:49:41 +02:00
Leland Lucius 9d465c69de Reapply 5955dbc75295997f273981224ffede70506bc185
Author: Leland Lucius <github@homerow.net>
    Date:   Wed Oct 2 10:17:00 2019 -0500

        Possible fix for bug #590

        This change reduces the risk of LADSPA plugins referencing
        Audacity symbols by using the RTLD_DEEPBIND flag when loading
        the plugins.

        It also addresses an issue specific to the "blop" plugins where
        they load their own libraries (without RTLD_DEEPBIND).

        A much better solution would be to change Audacity's default
        symbol visibility to "hidden" which would expose ONLY symbols
        specificially marked as visible.
2019-12-15 23:24:59 -06:00

54 lines
967 B
C

/* cmtcmd.c -- routines for the moxc side of the command interface */
#include "switches.h"
#include "stdio.h"
#ifdef AMIGA
#include "exec/types.h"
#include "exec/exec.h"
#endif
#include "cmtcmd.h"
#include "cext.h"
#include "userio.h"
#include "string.h"
#define HASHELEM(p) ((p).symbol_name)
#define HASHVAL 50
#define HASHENTRIES 50
#define HASHENTER hash_lookup
#define HASHNOCOPY
#include "hashrout.h"
void defvar(name, addr)
char *name;
int *addr;
{
int i = hash_lookup(name);
HASHENTRY(i).symb_type = var_symb_type;
HASHENTRY(i).ptr.intptr = addr;
}
void defun(name, addr)
char *name;
int (*addr)();
{
int i = hash_lookup(name);
HASHENTRY(i).symb_type = fn_symb_type;
HASHENTRY(i).ptr.routine = addr;
}
void defvec(name, addr, size)
char *name;
int *addr;
int size;
{
int i = hash_lookup(name);
HASHENTRY(i).symb_type = vec_symb_type;
HASHENTRY(i).size = size;
HASHENTRY(i).ptr.intptr = addr;
}