Author: jmolenda Date: Fri Dec 8 19:37:09 2017 New Revision: 320242 URL: http://llvm.org/viewvc/llvm-project?rev=320242&view=rev Log: Change uses of strncpy in debugserver to strlcpy for better safety.
<rdar://problem/32906923> Modified: lldb/trunk/tools/debugserver/source/DNB.cpp lldb/trunk/tools/debugserver/source/DNBRegisterInfo.cpp lldb/trunk/tools/debugserver/source/MacOSX/MachThread.cpp lldb/trunk/tools/debugserver/source/RNBRemote.cpp lldb/trunk/tools/debugserver/source/debugserver.cpp Modified: lldb/trunk/tools/debugserver/source/DNB.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/debugserver/source/DNB.cpp?rev=320242&r1=320241&r2=320242&view=diff ============================================================================== --- lldb/trunk/tools/debugserver/source/DNB.cpp (original) +++ lldb/trunk/tools/debugserver/source/DNB.cpp Fri Dec 8 19:37:09 2017 @@ -368,7 +368,7 @@ nub_process_t DNBProcessLaunch( if (launch_err.Fail()) { const char *launch_err_str = launch_err.AsString(); if (launch_err_str) { - strncpy(err_str, launch_err_str, err_len - 1); + strlcpy(err_str, launch_err_str, err_len - 1); err_str[err_len - 1] = '\0'; // Make sure the error string is terminated } @@ -1698,7 +1698,7 @@ nub_bool_t DNBResolveExecutablePath(cons if (realpath(path, max_path)) { // Found the path relatively... - ::strncpy(resolved_path, max_path, resolved_path_size); + ::strlcpy(resolved_path, max_path, resolved_path_size); return strlen(resolved_path) + 1 < resolved_path_size; } else { // Not a relative path, check the PATH environment variable if the @@ -1722,7 +1722,7 @@ nub_bool_t DNBResolveExecutablePath(cons result += path; struct stat s; if (stat(result.c_str(), &s) == 0) { - ::strncpy(resolved_path, result.c_str(), resolved_path_size); + ::strlcpy(resolved_path, result.c_str(), resolved_path_size); return result.size() + 1 < resolved_path_size; } } Modified: lldb/trunk/tools/debugserver/source/DNBRegisterInfo.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/debugserver/source/DNBRegisterInfo.cpp?rev=320242&r1=320241&r2=320242&view=diff ============================================================================== --- lldb/trunk/tools/debugserver/source/DNBRegisterInfo.cpp (original) +++ lldb/trunk/tools/debugserver/source/DNBRegisterInfo.cpp Fri Dec 8 19:37:09 2017 @@ -35,7 +35,7 @@ bool DNBRegisterValueClass::IsValid() co do { \ if (pos < end) { \ if (i > 0) { \ - strncpy(pos, ", ", end - pos); \ + strlcpy(pos, ", ", end - pos); \ pos += 2; \ } \ } \ @@ -69,7 +69,7 @@ void DNBRegisterValueClass::Dump(const c value.v_uint64[1]); break; default: - strncpy(str, "0x", 3); + strlcpy(str, "0x", 3); pos = str + 2; for (uint32_t i = 0; i < info.size; ++i) { if (pos < end) Modified: lldb/trunk/tools/debugserver/source/MacOSX/MachThread.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/debugserver/source/MacOSX/MachThread.cpp?rev=320242&r1=320241&r2=320242&view=diff ============================================================================== --- lldb/trunk/tools/debugserver/source/MacOSX/MachThread.cpp (original) +++ lldb/trunk/tools/debugserver/source/MacOSX/MachThread.cpp Fri Dec 8 19:37:09 2017 @@ -164,15 +164,15 @@ const char *MachThread::GetBasicInfoAsSt // size_t run_state_str_size = sizeof(run_state_str); // switch (basicInfo.run_state) // { - // case TH_STATE_RUNNING: strncpy(run_state_str, "running", + // case TH_STATE_RUNNING: strlcpy(run_state_str, "running", // run_state_str_size); break; - // case TH_STATE_STOPPED: strncpy(run_state_str, "stopped", + // case TH_STATE_STOPPED: strlcpy(run_state_str, "stopped", // run_state_str_size); break; - // case TH_STATE_WAITING: strncpy(run_state_str, "waiting", + // case TH_STATE_WAITING: strlcpy(run_state_str, "waiting", // run_state_str_size); break; - // case TH_STATE_UNINTERRUPTIBLE: strncpy(run_state_str, + // case TH_STATE_UNINTERRUPTIBLE: strlcpy(run_state_str, // "uninterruptible", run_state_str_size); break; - // case TH_STATE_HALTED: strncpy(run_state_str, "halted", + // case TH_STATE_HALTED: strlcpy(run_state_str, "halted", // run_state_str_size); break; // default: snprintf(run_state_str, // run_state_str_size, "%d", basicInfo.run_state); break; // ??? Modified: lldb/trunk/tools/debugserver/source/RNBRemote.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/debugserver/source/RNBRemote.cpp?rev=320242&r1=320241&r2=320242&view=diff ============================================================================== --- lldb/trunk/tools/debugserver/source/RNBRemote.cpp (original) +++ lldb/trunk/tools/debugserver/source/RNBRemote.cpp Fri Dec 8 19:37:09 2017 @@ -2247,7 +2247,7 @@ rnb_err_t set_logging(const char *p) { continue; } char *fn = (char *) alloca (c - p + 1); - strncpy (fn, p, c - p); + strlcpy (fn, p, c - p); fn[c - p] = '\0'; // A file name of "asl" is special and is another way to indicate @@ -3049,7 +3049,7 @@ rnb_err_t RNBRemote::HandlePacket_last_s // If we have an empty exit packet, lets fill one in to be safe. if (!pid_exited_packet[0]) { - strncpy(pid_exited_packet, "W00", sizeof(pid_exited_packet) - 1); + strlcpy(pid_exited_packet, "W00", sizeof(pid_exited_packet) - 1); pid_exited_packet[sizeof(pid_exited_packet) - 1] = '\0'; } Modified: lldb/trunk/tools/debugserver/source/debugserver.cpp URL: http://llvm.org/viewvc/llvm-project/lldb/trunk/tools/debugserver/source/debugserver.cpp?rev=320242&r1=320241&r2=320242&view=diff ============================================================================== --- lldb/trunk/tools/debugserver/source/debugserver.cpp (original) +++ lldb/trunk/tools/debugserver/source/debugserver.cpp Fri Dec 8 19:37:09 2017 @@ -232,7 +232,7 @@ RNBRunLoopMode RNBRunLoopLaunchInferior( // were given and hope for the best if (!DNBResolveExecutablePath(inferior_argv[0], resolved_path, sizeof(resolved_path))) - ::strncpy(resolved_path, inferior_argv[0], sizeof(resolved_path)); + ::strlcpy(resolved_path, inferior_argv[0], sizeof(resolved_path)); char launch_err_str[PATH_MAX]; launch_err_str[0] = '\0'; @@ -676,7 +676,7 @@ static void PortWasBoundCallbackUnixSock } saddr_un.sun_family = AF_UNIX; - ::strncpy(saddr_un.sun_path, unix_socket_name, + ::strlcpy(saddr_un.sun_path, unix_socket_name, sizeof(saddr_un.sun_path) - 1); saddr_un.sun_path[sizeof(saddr_un.sun_path) - 1] = '\0'; saddr_un.sun_len = SUN_LEN(&saddr_un); @@ -1366,7 +1366,7 @@ int main(int argc, char *argv[]) { DNBLogDebug("host = '%s' port = %i", host.c_str(), port); } else if (argv[0][0] == '/') { port = INT32_MAX; - strncpy(str, argv[0], sizeof(str)); + strlcpy(str, argv[0], sizeof(str)); } else { show_usage_and_exit(2); } _______________________________________________ lldb-commits mailing list lldb-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/lldb-commits