Check for unknown flags passed to dlopen(3).

Change-Id: I56f4aab0e5a1487bc32d2c4d231e8bd15c4ac8da
diff --git a/linker/linker.cpp b/linker/linker.cpp
index 0d0a8a9..0bdff99 100755
--- a/linker/linker.cpp
+++ b/linker/linker.cpp
@@ -966,7 +966,11 @@
   return 0;
 }
 
-soinfo* do_dlopen(const char* name) {
+soinfo* do_dlopen(const char* name, int flags) {
+  if ((flags & ~(RTLD_NOW|RTLD_LAZY|RTLD_LOCAL|RTLD_GLOBAL)) != 0) {
+    DL_ERR("invalid flags to dlopen: %x", flags);
+    return NULL;
+  }
   set_soinfo_pool_protection(PROT_READ | PROT_WRITE);
   soinfo* si = find_library(name);
   if (si != NULL) {