summaryrefslogtreecommitdiffstats
path: root/lldb
diff options
context:
space:
mode:
Diffstat (limited to 'lldb')
-rw-r--r--lldb/source/API/SBFileSpec.cpp5
-rw-r--r--lldb/source/Host/common/FileSpec.cpp6
-rw-r--r--lldb/source/Host/common/SocketAddress.cpp6
-rw-r--r--lldb/source/Host/macosx/HostInfoMacOSX.mm66
-rw-r--r--lldb/source/Host/posix/HostInfoPosix.cpp5
-rw-r--r--lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp2
-rw-r--r--lldb/source/Plugins/SymbolVendor/MacOSX/SymbolVendorMacOSX.cpp2
-rw-r--r--lldb/source/lldb.cpp4
8 files changed, 45 insertions, 51 deletions
diff --git a/lldb/source/API/SBFileSpec.cpp b/lldb/source/API/SBFileSpec.cpp
index 8d63fc587d8..167b5f55b05 100644
--- a/lldb/source/API/SBFileSpec.cpp
+++ b/lldb/source/API/SBFileSpec.cpp
@@ -93,9 +93,8 @@ SBFileSpec::ResolvePath (const char *src_path, char *dst_path, size_t dst_len)
{
llvm::SmallString<64> result(src_path);
lldb_private::FileSpec::Resolve (result);
- size_t result_length = std::min(dst_len-1, result.size());
- ::strncpy(dst_path, result.c_str(), result_length + 1);
- return result_length;
+ ::snprintf(dst_path, dst_len, "%s", result.c_str());
+ return std::min(dst_len-1, result.size());
}
const char *
diff --git a/lldb/source/Host/common/FileSpec.cpp b/lldb/source/Host/common/FileSpec.cpp
index 553764e560d..a968dd93b61 100644
--- a/lldb/source/Host/common/FileSpec.cpp
+++ b/lldb/source/Host/common/FileSpec.cpp
@@ -793,10 +793,8 @@ FileSpec::GetPath(char *path, size_t path_max_len, bool denormalize) const
return 0;
std::string result = GetPath(denormalize);
-
- size_t result_length = std::min(path_max_len-1, result.length());
- ::strncpy(path, result.c_str(), result_length + 1);
- return result_length;
+ ::snprintf(path, path_max_len, "%s", result.c_str());
+ return std::min(path_max_len-1, result.length());
}
std::string
diff --git a/lldb/source/Host/common/SocketAddress.cpp b/lldb/source/Host/common/SocketAddress.cpp
index b6a7a08bb3a..3ab6cfeec4a 100644
--- a/lldb/source/Host/common/SocketAddress.cpp
+++ b/lldb/source/Host/common/SocketAddress.cpp
@@ -48,8 +48,7 @@ const char* inet_ntop(int af, const void * src,
const char* formatted = inet_ntoa(*static_cast<const in_addr*>(src));
if (formatted && strlen(formatted) < size)
{
- strncpy(dst, formatted, size);
- return dst;
+ return ::strcpy(dst, formatted);
}
}
return nullptr;
@@ -64,8 +63,7 @@ const char* inet_ntop(int af, const void * src,
);
if (full_size < static_cast<int>(size))
{
- strncpy(dst,tmp,size);
- return dst;
+ return ::strcpy(dst, tmp);
}
return nullptr;
}
diff --git a/lldb/source/Host/macosx/HostInfoMacOSX.mm b/lldb/source/Host/macosx/HostInfoMacOSX.mm
index a22674e63aa..edaff083373 100644
--- a/lldb/source/Host/macosx/HostInfoMacOSX.mm
+++ b/lldb/source/Host/macosx/HostInfoMacOSX.mm
@@ -134,22 +134,23 @@ HostInfoMacOSX::ComputeSupportExeDirectory(FileSpec &file_spec)
FileSpec lldb_file_spec;
if (!GetLLDBPath(lldb::ePathTypeLLDBShlibDir, lldb_file_spec))
return false;
- char raw_path[PATH_MAX];
- lldb_file_spec.GetPath(raw_path, sizeof(raw_path));
- char *framework_pos = ::strstr(raw_path, "LLDB.framework");
- if (framework_pos)
+ std::string raw_path = lldb_file_spec.GetPath();
+
+ size_t framework_pos = raw_path.find("LLDB.framework");
+ if (framework_pos != std::string::npos)
{
framework_pos += strlen("LLDB.framework");
#if defined(__arm__) || defined(__arm64__) || defined(__aarch64__)
// Shallow bundle
- *framework_pos = '\0';
+ raw_path.resize(framework_pos);
#else
// Normal bundle
- ::strncpy(framework_pos, "/Resources", PATH_MAX - (framework_pos - raw_path));
+ raw_path.resize(framework_pos);
+ raw_path.append("/Resources");
#endif
}
- file_spec.GetDirectory().SetCString(raw_path);
+ file_spec.GetDirectory().SetString(llvm::StringRef(raw_path.c_str(), raw_path.size()));
return (bool)file_spec.GetDirectory();
}
@@ -160,16 +161,16 @@ HostInfoMacOSX::ComputeHeaderDirectory(FileSpec &file_spec)
if (!HostInfo::GetLLDBPath(lldb::ePathTypeLLDBShlibDir, lldb_file_spec))
return false;
- char raw_path[PATH_MAX];
- lldb_file_spec.GetPath(raw_path, sizeof(raw_path));
+ std::string raw_path = lldb_file_spec.GetPath();
- char *framework_pos = ::strstr(raw_path, "LLDB.framework");
- if (framework_pos)
+ size_t framework_pos = raw_path.find("LLDB.framework");
+ if (framework_pos != std::string::npos)
{
framework_pos += strlen("LLDB.framework");
- ::strncpy(framework_pos, "/Headers", PATH_MAX - (framework_pos - raw_path));
+ raw_path.resize(framework_pos);
+ raw_path.append("/Headers");
}
- file_spec.GetDirectory().SetCString(raw_path);
+ file_spec.GetDirectory().SetString(llvm::StringRef(raw_path.c_str(), raw_path.size()));
return true;
}
@@ -181,14 +182,14 @@ HostInfoMacOSX::ComputePythonDirectory(FileSpec &file_spec)
if (!GetLLDBPath(lldb::ePathTypeLLDBShlibDir, lldb_file_spec))
return false;
- char raw_path[PATH_MAX];
- lldb_file_spec.GetPath(raw_path, sizeof(raw_path));
+ std::string raw_path = lldb_file_spec.GetPath();
- char *framework_pos = ::strstr(raw_path, "LLDB.framework");
- if (framework_pos)
+ size_t framework_pos = raw_path.find("LLDB.framework");
+ if (framework_pos != std::string::npos)
{
framework_pos += strlen("LLDB.framework");
- ::strncpy(framework_pos, "/Resources/Python", PATH_MAX - (framework_pos - raw_path));
+ raw_path.resize(framework_pos);
+ raw_path.append("/Resources/Python");
}
else
{
@@ -198,9 +199,9 @@ HostInfoMacOSX::ComputePythonDirectory(FileSpec &file_spec)
os.flush();
// We may get our string truncated. Should we protect this with an assert?
- ::strncat(raw_path, python_version_dir.c_str(), sizeof(raw_path) - strlen(raw_path) - 1);
+ raw_path.append(python_version_dir.c_str());
}
- file_spec.GetDirectory().SetCString(raw_path);
+ file_spec.GetDirectory().SetString(llvm::StringRef(raw_path.c_str(), raw_path.size()));
return true;
#else
return false;
@@ -214,16 +215,16 @@ HostInfoMacOSX::ComputeClangDirectory(FileSpec &file_spec)
if (!GetLLDBPath (lldb::ePathTypeLLDBShlibDir, lldb_file_spec))
return false;
- char raw_path[PATH_MAX];
- lldb_file_spec.GetPath (raw_path, sizeof (raw_path));
+ std::string raw_path = lldb_file_spec.GetPath();
- char *framework_pos = ::strstr (raw_path, "LLDB.framework");
- if (framework_pos)
+ size_t framework_pos = raw_path.find("LLDB.framework");
+ if (framework_pos != std::string::npos)
{
framework_pos += strlen("LLDB.framework");
- ::strncpy (framework_pos, "/Resources/Clang", PATH_MAX - (framework_pos - raw_path));
+ raw_path.resize(framework_pos);
+ raw_path.append("/Resources/Clang");
}
- file_spec.SetFile (raw_path, true);
+ file_spec.SetFile (raw_path.c_str(), true);
return true;
}
@@ -233,16 +234,17 @@ HostInfoMacOSX::ComputeSystemPluginsDirectory(FileSpec &file_spec)
FileSpec lldb_file_spec;
if (!GetLLDBPath(lldb::ePathTypeLLDBShlibDir, lldb_file_spec))
return false;
- char raw_path[PATH_MAX];
- lldb_file_spec.GetPath(raw_path, sizeof(raw_path));
- char *framework_pos = ::strstr(raw_path, "LLDB.framework");
- if (!framework_pos)
+ std::string raw_path = lldb_file_spec.GetPath();
+
+ size_t framework_pos = raw_path.find("LLDB.framework");
+ if (framework_pos == std::string::npos)
return false;
framework_pos += strlen("LLDB.framework");
- ::strncpy(framework_pos, "/Resources/PlugIns", PATH_MAX - (framework_pos - raw_path));
- file_spec.GetDirectory().SetCString(raw_path);
+ raw_path.resize(framework_pos);
+ raw_path.append("/Resources/PlugIns");
+ file_spec.GetDirectory().SetString(llvm::StringRef(raw_path.c_str(), raw_path.size()));
return true;
}
diff --git a/lldb/source/Host/posix/HostInfoPosix.cpp b/lldb/source/Host/posix/HostInfoPosix.cpp
index 018d423ee9d..debff52d8c1 100644
--- a/lldb/source/Host/posix/HostInfoPosix.cpp
+++ b/lldb/source/Host/posix/HostInfoPosix.cpp
@@ -153,11 +153,8 @@ HostInfoPosix::ComputeSupportExeDirectory(FileSpec &file_spec)
char *lib_pos = ::strstr(raw_path, "/lib");
if (lib_pos != nullptr)
{
- // First terminate the raw path at the start of lib.
- *lib_pos = '\0';
-
// Now write in bin in place of lib.
- ::strncpy(lib_pos, "/bin", PATH_MAX - (lib_pos - raw_path));
+ ::snprintf(lib_pos, PATH_MAX - (lib_pos - raw_path), "/bin");
if (log)
log->Printf("Host::%s() derived the bin path as: %s", __FUNCTION__, raw_path);
diff --git a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
index aa68160b011..4fb039740ef 100644
--- a/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
+++ b/lldb/source/Plugins/Process/gdb-remote/GDBRemoteCommunicationClient.cpp
@@ -3639,7 +3639,7 @@ GDBRemoteCommunicationClient::SaveRegisterState (lldb::tid_t tid, uint32_t &save
if (thread_suffix_supported)
::snprintf (packet, sizeof(packet), "QSaveRegisterState;thread:%4.4" PRIx64 ";", tid);
else
- ::strncpy (packet, "QSaveRegisterState", sizeof(packet));
+ ::snprintf(packet, sizeof(packet), "QSaveRegisterState");
StringExtractorGDBRemote response;
diff --git a/lldb/source/Plugins/SymbolVendor/MacOSX/SymbolVendorMacOSX.cpp b/lldb/source/Plugins/SymbolVendor/MacOSX/SymbolVendorMacOSX.cpp
index a70c5d57114..f647ac43465 100644
--- a/lldb/source/Plugins/SymbolVendor/MacOSX/SymbolVendorMacOSX.cpp
+++ b/lldb/source/Plugins/SymbolVendor/MacOSX/SymbolVendorMacOSX.cpp
@@ -231,7 +231,7 @@ SymbolVendorMacOSX::CreateInstance (const lldb::ModuleSP &module_sp, lldb_privat
const char *node_content = (const char *)::xmlNodeGetContent(value_node);
if (node_content)
{
- strncpy(DBGBuildSourcePath, node_content, sizeof(DBGBuildSourcePath));
+ ::snprintf(DBGBuildSourcePath, sizeof(DBGBuildSourcePath), "%s", node_content);
xmlFree((void *) node_content);
}
}
diff --git a/lldb/source/lldb.cpp b/lldb/source/lldb.cpp
index 129c5ee05a6..f7eca36deaa 100644
--- a/lldb/source/lldb.cpp
+++ b/lldb/source/lldb.cpp
@@ -364,13 +364,13 @@ lldb_private::GetVersion ()
const char *newline_loc = strchr(version_string, '\n');
- size_t version_len = sizeof(g_version_string);
+ size_t version_len = sizeof(g_version_string) - 1;
if (newline_loc &&
(newline_loc - version_string < static_cast<ptrdiff_t>(version_len)))
version_len = newline_loc - version_string;
- ::strncpy(g_version_string, version_string, version_len);
+ ::snprintf(g_version_string, version_len + 1, "%s", version_string);
}
return g_version_string;
OpenPOWER on IntegriCloud