linker: cleanup solist after unsuccessful read

Bug: http://b/25560017
Change-Id: I03c5a1d7aed34c480d341aacfb3b1afdfa037b99
diff --git a/linker/linker.cpp b/linker/linker.cpp
index 9f0b559..31ed1ec 100644
--- a/linker/linker.cpp
+++ b/linker/linker.cpp
@@ -1523,6 +1523,8 @@
 
   // Read the ELF header and some of the segments.
   if (!task->read(realpath.c_str(), file_stat.st_size)) {
+    soinfo_free(si);
+    task->set_soinfo(nullptr);
     return false;
   }