mirror of
https://github.com/cookiengineer/audacity
synced 2025-06-20 22:30:05 +02:00
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.
52 lines
1007 B
C
52 lines
1007 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 "cext.h"
|
|
#include "midifns.h"
|
|
#include "timebase.h"
|
|
#include "moxc.h"
|
|
#include "seq.h"
|
|
#include "cmtcmd.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(char *name, int *addr)
|
|
|
|
{
|
|
intptr_t i = hash_lookup(name);
|
|
HASHENTRY(i).symb_type = var_symb_type;
|
|
HASHENTRY(i).ptr.intptr = addr;
|
|
}
|
|
|
|
|
|
void defun(char *name, seq_cmd_fn addr)
|
|
{
|
|
intptr_t i = hash_lookup(name);
|
|
HASHENTRY(i).symb_type = fn_symb_type;
|
|
HASHENTRY(i).ptr.routine = addr;
|
|
}
|
|
|
|
|
|
void defvec(char *name, int *addr, int size)
|
|
{
|
|
intptr_t i = hash_lookup(name);
|
|
HASHENTRY(i).symb_type = vec_symb_type;
|
|
HASHENTRY(i).size = size;
|
|
HASHENTRY(i).ptr.intptr = addr;
|
|
}
|
|
|
|
|