https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85728
Bug ID: 85728
Summary: strncpy -Wstringop-truncation
Product: gcc
Version: 8.0.1
Status: UNCONFIRMED
Severity: normal
Priority: P3
Component: c++
Assignee: unassigned at gcc dot gnu.org
Reporter: evk55 at 126 dot com
Target Milestone: ---
const char* Status::CopyState(const char* state) {
const size_t cch = std::strlen(state) + 1; // +1 for the null terminator
char* const result = new char[cch];
result[cch - 1] = '\0';
#ifdef OS_WIN
errno_t ret;
ret = strncpy_s(result, cch, state, cch - 1);
assert(ret == 0);
#else
std::strncpy(result, state, cch - 1);
#endif
return result;
}
error: ‘char* strncpy(char*, const char*, size_t)’ output truncated before
terminating nul copying as many bytes from a string as its length
[-Werror=stringop-truncation]
std::strncpy(result, state, cch);
~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~
status.cc:18:33: note: length computed here
const size_t cch = std::strlen(state);