On HP-UX 10, shareable libraries end with '.sl', not '.so'.

In part reported by Lynn Gazis <lgazis@IVEA.com>.  The rest of the
report is about SHLIB_PATH being ignored.  It was decided that using
it would break security.
This commit is contained in:
Richard Levitte 2001-03-14 13:30:07 +00:00
parent 11bfaf6cff
commit d58eb72f25

View File

@ -111,6 +111,11 @@ DSO_METHOD *DSO_METHOD_dl(void)
* type so the cast is safe. * type so the cast is safe.
*/ */
#if defined(__hpux)
static const char extension[] = ".sl";
#else
static const char extension[] = ".so";
#endif
static int dl_load(DSO *dso, const char *filename) static int dl_load(DSO *dso, const char *filename)
{ {
shl_t ptr; shl_t ptr;
@ -118,12 +123,12 @@ static int dl_load(DSO *dso, const char *filename)
int len; int len;
/* The same comment as in dlfcn_load applies here. bleurgh. */ /* The same comment as in dlfcn_load applies here. bleurgh. */
len = strlen(filename); len = strlen(filename) + len(extension);
if((dso->flags & DSO_FLAG_NAME_TRANSLATION) && if((dso->flags & DSO_FLAG_NAME_TRANSLATION) &&
(len + 6 < DSO_MAX_TRANSLATED_SIZE) && (len + 3 < DSO_MAX_TRANSLATED_SIZE) &&
(strstr(filename, "/") == NULL)) (strstr(filename, "/") == NULL))
{ {
sprintf(translated, "lib%s.so", filename); sprintf(translated, "lib%s%s", filename, extension);
ptr = shl_load(translated, BIND_IMMEDIATE, NULL); ptr = shl_load(translated, BIND_IMMEDIATE, NULL);
} }
else else