Return error when handle is null in GetSymbolFromLibrary instead of using the RTLD_DEFAULT behavior.

Fix an issue where tf-nightly (w/ gpu support) segfault at import due to infinitely recursion of __cudaRegisterFatBinary.

Fix https://github.com/tensorflow/tensorflow/issues/33852.

PiperOrigin-RevId: 277833490
Change-Id: I75f7dfe94c0259124888a62fa815b0b1731415ef
diff --git a/tensorflow/core/platform/default/load_library.cc b/tensorflow/core/platform/default/load_library.cc
index 8fad535..eaa68e6 100644
--- a/tensorflow/core/platform/default/load_library.cc
+++ b/tensorflow/core/platform/default/load_library.cc
@@ -33,7 +33,12 @@
 
 Status GetSymbolFromLibrary(void* handle, const char* symbol_name,
                             void** symbol) {
-  *symbol = dlsym(handle, symbol_name);
+  // Check that the handle is not NULL to avoid dlsym's RTLD_DEFAULT behavior.
+  if (!handle) {
+    *symbol = nullptr;
+  } else {
+    *symbol = dlsym(handle, symbol_name);
+  }
   if (!*symbol) {
     return errors::NotFound(dlerror());
   }