add some loopback detection in GSS dynamic loading
This commit is contained in:
@@ -152,7 +152,8 @@ _gss_string_to_oid(const char* s, gss_OID oid)
|
|||||||
#define SYM(name) \
|
#define SYM(name) \
|
||||||
do { \
|
do { \
|
||||||
m->gm_mech.gm_ ## name = dlsym(so, "gss_" #name); \
|
m->gm_mech.gm_ ## name = dlsym(so, "gss_" #name); \
|
||||||
if (!m->gm_mech.gm_ ## name) { \
|
if (!m->gm_mech.gm_ ## name || \
|
||||||
|
m->gm_mech.gm_ ##name == gss_ ## name) { \
|
||||||
fprintf(stderr, "can't find symbol gss_" #name "\n"); \
|
fprintf(stderr, "can't find symbol gss_" #name "\n"); \
|
||||||
goto bad; \
|
goto bad; \
|
||||||
} \
|
} \
|
||||||
@@ -161,6 +162,8 @@ do { \
|
|||||||
#define OPTSYM(name) \
|
#define OPTSYM(name) \
|
||||||
do { \
|
do { \
|
||||||
m->gm_mech.gm_ ## name = dlsym(so, "gss_" #name); \
|
m->gm_mech.gm_ ## name = dlsym(so, "gss_" #name); \
|
||||||
|
if (m->gm_mech.gm_ ## name == gss_ ## name) \
|
||||||
|
m->gm_mech.gm_ ## name = NULL; \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
#define OPTSPISYM(name) \
|
#define OPTSPISYM(name) \
|
||||||
@@ -171,6 +174,8 @@ do { \
|
|||||||
#define COMPATSYM(name) \
|
#define COMPATSYM(name) \
|
||||||
do { \
|
do { \
|
||||||
m->gm_mech.gm_compat->gmc_ ## name = dlsym(so, "gss_" #name); \
|
m->gm_mech.gm_compat->gmc_ ## name = dlsym(so, "gss_" #name); \
|
||||||
|
if (m->gm_mech.gm_compat->gmc_ ## name == gss_ ## name) \
|
||||||
|
m->gm_mech.gm_compat->gmc_ ## name = NULL; \
|
||||||
} while (0)
|
} while (0)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
Reference in New Issue
Block a user