* 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
{