diff --git a/src/symbolize.cc b/src/symbolize.cc index 6cb0e1222..da59738a5 100644 --- a/src/symbolize.cc +++ b/src/symbolize.cc @@ -832,8 +832,10 @@ static ATTRIBUTE_NOINLINE bool SymbolizeAndDemangle( Dl_info info; if (dladdr(pc, &info)) { if (info.dli_sname) { - if (strlen(info.dli_sname) < out_size) { - strcpy(out, info.dli_sname); + int name_length = strlen(info.dli_sname); + if (name_length < out_size) { + memcpy(out, info.dli_sname, name_length); + out[name_length] = '\0'; // Symbolization succeeded. Now we try to demangle the symbol. DemangleInplace(out, out_size); return true;