* mktemp is insecure as it always creates or uses insecure temporary file.
Switch to mkstemp.

* Get and display the error message when an error occurs while creating the temporary file

llvm-svn: 191616
diff --git a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.cpp b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.cpp
index dd16139..47223f1 100644
--- a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.cpp
+++ b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationServer.cpp
@@ -7,6 +7,7 @@
 //
 //===----------------------------------------------------------------------===//
 
+#include <errno.h>
 
 #include "GDBRemoteCommunicationServer.h"
 #include "lldb/Core/StreamGDBRemote.h"
@@ -762,9 +763,9 @@
         Error error;
         std::string hostname;
         char unix_socket_name[PATH_MAX] = "/tmp/XXXXXX";
-        if (::mktemp (unix_socket_name) == NULL)
+        if (::mkstemp (unix_socket_name) == -1)
         {
-            error.SetErrorString ("failed to make temporary path for a unix socket");
+            error.SetErrorStringWithFormat("failed to make temporary path for a unix socket with errno: %s", strerror(errno));
         }
         else
         {