(_dl_open): Don't allow explicit loading of DSO into empty namespace.
authordrepper <drepper>
Wed, 27 Oct 2004 21:32:30 +0000 (21:32 +0000)
committerdrepper <drepper>
Wed, 27 Oct 2004 21:32:30 +0000 (21:32 +0000)
elf/dl-open.c

index 2ab1e30..294a523 100644 (file)
@@ -570,6 +570,12 @@ _dl_open (const char *file, int mode, const void *caller_dlopen, Lmid_t nsid)
 no more namespaces available for dlmopen()"));
        }
     }
 no more namespaces available for dlmopen()"));
        }
     }
+  /* Never allow loading a DSO in a namespace which is empty.  Such
+     direct placements is only causing problems.  */
+  else if (nsid != LM_ID_BASE && nsid != __LM_ID_CALLER
+          && GL(dl_ns)[nsid]._ns_nloaded == 0)
+    GLRO(dl_signal_error) (EINVAL, file, NULL,
+                          N_("invalid target namespace in dlmopen()"));
 
   args.file = file;
   args.mode = mode;
 
   args.file = file;
   args.mode = mode;