Fix compilation if RTLD_NEXT is not defined.

This commit is contained in:
Todd C. Miller
2012-03-28 15:27:27 -04:00
parent 739ea68d03
commit 0a230feaed

View File

@@ -78,13 +78,13 @@ getenv(const char *name)
case SUDO_HOOK_RET_ERROR: case SUDO_HOOK_RET_ERROR:
return NULL; return NULL;
default: { default: {
#if defined(HAVE_DLOPEN) #if defined(HAVE_DLOPEN) && defined(RTLD_NEXT)
char * (*fn)(const char *); char * (*fn)(const char *);
fn = dlsym(RTLD_NEXT, "getenv"); fn = dlsym(RTLD_NEXT, "getenv");
if (fn != NULL) if (fn != NULL)
return fn(name); return fn(name);
#endif /* HAVE_DLOPEN */ #endif /* HAVE_DLOPEN && RTLD_NEXT */
return rpl_getenv(name); return rpl_getenv(name);
} }
} }
@@ -141,13 +141,13 @@ putenv(PUTENV_CONST char *string)
case SUDO_HOOK_RET_ERROR: case SUDO_HOOK_RET_ERROR:
return -1; return -1;
default: { default: {
#if defined(HAVE_DLOPEN) #if defined(HAVE_DLOPEN) && defined(RTLD_NEXT)
int (*fn)(PUTENV_CONST char *); int (*fn)(PUTENV_CONST char *);
fn = dlsym(RTLD_NEXT, "putenv"); fn = dlsym(RTLD_NEXT, "putenv");
if (fn != NULL) if (fn != NULL)
return fn(string); return fn(string);
#endif /* HAVE_DLOPEN */ #endif /* HAVE_DLOPEN && RTLD_NEXT */
return rpl_putenv(string); return rpl_putenv(string);
} }
} }
@@ -204,13 +204,13 @@ setenv(const char *var, const char *val, int overwrite)
case SUDO_HOOK_RET_ERROR: case SUDO_HOOK_RET_ERROR:
return -1; return -1;
default: { default: {
#if defined(HAVE_SETENV) && defined(HAVE_DLOPEN) #if defined(HAVE_SETENV) && defined(HAVE_DLOPEN) && defined(RTLD_NEXT)
int (*fn)(const char *, const char *, int); int (*fn)(const char *, const char *, int);
fn = dlsym(RTLD_NEXT, "setenv"); fn = dlsym(RTLD_NEXT, "setenv");
if (fn != NULL) if (fn != NULL)
return fn(var, val, overwrite); return fn(var, val, overwrite);
#endif /* HAVE_SETENV && HAVE_DLOPEN */ #endif /* HAVE_SETENV && HAVE_DLOPEN && RTLD_NEXT */
return rpl_setenv(var, val, overwrite); return rpl_setenv(var, val, overwrite);
} }
} }
@@ -262,14 +262,14 @@ unsetenv(const char *var)
case SUDO_HOOK_RET_ERROR: case SUDO_HOOK_RET_ERROR:
return -1; return -1;
default: { default: {
#if defined(HAVE_UNSETENV) && defined(HAVE_DLOPEN) #if defined(HAVE_UNSETENV) && defined(HAVE_DLOPEN) && defined(RTLD_NEXT)
void (*fn)(const char *); void (*fn)(const char *);
fn = dlsym(RTLD_NEXT, "unsetenv"); fn = dlsym(RTLD_NEXT, "unsetenv");
if (fn != NULL) if (fn != NULL)
fn(var); fn(var);
else else
#endif /* HAVE_UNSETENV && HAVE_DLOPEN */ #endif /* HAVE_UNSETENV && HAVE_DLOPEN && RTLD_NEXT */
rpl_unsetenv(var); rpl_unsetenv(var);
} }
} }
@@ -284,13 +284,13 @@ unsetenv(const char *var)
case SUDO_HOOK_RET_ERROR: case SUDO_HOOK_RET_ERROR:
return -1; return -1;
default: { default: {
#if defined(HAVE_UNSETENV) && defined(HAVE_DLOPEN) #if defined(HAVE_UNSETENV) && defined(HAVE_DLOPEN) && defined(RTLD_NEXT)
int (*fn)(const char *); int (*fn)(const char *);
fn = dlsym(RTLD_NEXT, "unsetenv"); fn = dlsym(RTLD_NEXT, "unsetenv");
if (fn != NULL) if (fn != NULL)
return fn(var); return fn(var);
#endif /* HAVE_UNSETENV && HAVE_DLOPEN */ #endif /* HAVE_UNSETENV && HAVE_DLOPEN && RTLD_NEXT */
return rpl_unsetenv(var); return rpl_unsetenv(var);
} }
} }